楊發(fā)田,葛紅宇,張建華,熊 超
(南京工程學院自動化學院,江蘇南京 211167)
基于STM32處理器的嵌入式實驗系統(tǒng)設計與實現(xiàn)
楊發(fā)田,葛紅宇,張建華,熊 超
(南京工程學院自動化學院,江蘇南京 211167)
提出了一種專用集成芯片+嵌入式處理器實時控制系統(tǒng)方案,采用典型Cortex處理器STM32與可編程邏輯器件EPM570實現(xiàn)了相應系統(tǒng)。根據(jù)工業(yè)控制領域的實時性、集成度要求,采用模塊化設計方法實現(xiàn)了處理器電路、U盤控制等硬件設計以及相關驅動程序的開發(fā)。結合嵌入式系統(tǒng)、EDA等的教學需要,設計了相關課程的基礎性、綜合性等實驗。同時,結合科研與大學生創(chuàng)新實踐對研制的教學實驗系統(tǒng)進行了驗證。
嵌入式系統(tǒng);CPLD;工業(yè)控制;實驗;教學
嵌入式計算機及控制系統(tǒng)具有運算速度快、集成度高等特點,同時具有豐富的片上外設與總線接口,尤其適于環(huán)境惡劣,需要復雜、高速控制的工業(yè)現(xiàn)場,能夠為過程控制、自動檢測、加工自動化等領域提供高效、優(yōu)質(zhì)的解決方案[1-3],在多個領域得到較為廣泛的重視。
STM32是意法半導體(ST)面向工業(yè)應用、樓宇自動化等領域推出的系列嵌入式控制器。它采用ARM Cortex-M3 32位的RISC內(nèi)核,最高工作頻率72MHz,提供單周期乘法與硬件除法器,內(nèi)置高達512KB的FLASH與64KB的SRAM。同時,片內(nèi)集成12位ADC、16位通用定時器、PWM定時器,以及標準 I2C、SPI和 CAN 等接口[4]。
STM32控制器的上述特點及其可媲美8-16位單片機的價格優(yōu)勢,使其在電機控制、醫(yī)療器械手持設備等領域得以迅速推廣。目前,市場出現(xiàn)了大量基于STM32系列處理器的實驗開發(fā)系統(tǒng),其共同特點是通用性強,針對性相對較弱。結合過程控制、自動檢測、電機控制等領域的技術特點,本文研究基于STM32處理器的,適于自動檢測、過程控制、自動化加工等工業(yè)現(xiàn)場的實驗、教學系統(tǒng),開發(fā)相應的教學實驗平臺。
根據(jù)自動化加工、過程控制等技術領域的控制精度、實時性、圖形顯示以及通信等要求,本文研制的嵌入式實驗系統(tǒng)框架結構如圖1所示。圖中的實驗系統(tǒng)采用專用的TFT液晶模塊來顯示多個控制領域中的相關圖形、文字狀態(tài)信息、報警信息等內(nèi)容。系統(tǒng)擴展了專用的模數(shù)轉換模塊,便于實現(xiàn)多個被控變量的動態(tài)實時采集與轉換。系統(tǒng)控制方面,設計了專門的多路數(shù)模轉換及放大電路,以滿足多變量的控制。
圖1 嵌入式實驗系統(tǒng)框架結構
2.1 主控模塊電路
主控模塊構成嵌入式計算機的基本系統(tǒng),包括嵌入式處理器及輔助電路、串行通信接口RS232及外圍電路、SPI接口、U盤存儲電路及必要的電源電路、下載電路與復位電路等。系統(tǒng)CPU選用STM32F103ZET6處理器,LQFP144封裝,內(nèi)部集成64KB RAM與512KB FLASH,分別用作數(shù)據(jù)存儲器與程序存儲器,圖2所示為主模塊中的液晶接口、晶振電路、STM32下載電路與RS232串行接口。
圖2 系統(tǒng)液晶接口、晶振電路、STM32下載電路與RS232串行接口
液晶顯示采用8位256色TFT彩屏,通過并行接口與STM32進行數(shù)據(jù)交換。圖中的8MHz晶振電路用于產(chǎn)生系統(tǒng)時鐘,經(jīng)CPU內(nèi)部的PLL電路倍頻,得到72MHz的系統(tǒng)時鐘。32.768KHz則用作系統(tǒng)的實時時鐘。圖3所示為U盤接口電路,系統(tǒng)中設置U盤控制的目的在于為常規(guī)自動檢測、數(shù)據(jù)處理、自動化控制等領域應用提供大容量的外存儲介質(zhì),同時便于外部高性能計算機,如PC機對上述應用領域中的數(shù)據(jù)進行分析、處理。本文采用專用芯片CH376實現(xiàn)U盤控制。通過并行接口的低8位,STM32根據(jù)通信協(xié)議將相關指令與數(shù)據(jù)寫入CH376,完成U盤文件的讀寫、創(chuàng)建、刪除等操作。
圖3 U盤控制接口電路
2.2 數(shù)/模轉換及放大
實驗系統(tǒng)的數(shù)模轉換及放大模塊輸出0~10V的電壓量,電路結構如圖4所示。實驗系統(tǒng)輸出指定電壓時,STM32模塊與12位四通道 DA器件AD5024和外圍電路、LM324放大電路以及CPLD器件協(xié)同工作。
圖4 數(shù)模轉換及放大模塊的電路結構
實驗系統(tǒng)的CPLD內(nèi)設計了通道VOUTAVOUTD的專用寄存器,通過并口數(shù)據(jù)的低12位,STM32將設置電壓寫入通道寄存器。然后,CPLD內(nèi)部邏輯將轉換指令、通道地址信息與轉換電壓進行并-串轉換,逐位從ADDIN送至AD5024,輸出0~5V電壓,最后經(jīng)LM324放大電路獲得0~10V的輸出電壓。系統(tǒng)中的CPLD器件選用MAXⅡ器件EPM570T144C3。
圖5 模數(shù)轉換模塊的電路結構
系統(tǒng)模數(shù)轉換通過12位六通道AD器件MAX196實現(xiàn),電路結構如圖5所示。通過并口數(shù)據(jù)的低12位,STM32與MAX196實現(xiàn)信息交互。根據(jù)通信協(xié)議送出指令,接收外部0~10V的電壓并啟動轉換。
2.3 音頻控制電路
實驗系統(tǒng)的音頻控制電路如圖6所示??刂菩酒x用立體聲MP3解碼芯片VS1003,其內(nèi)部集成低功耗DSP核VS_DSP4、數(shù)據(jù)存儲器、串行數(shù)據(jù)接口與高品質(zhì)可變采樣率的ADC和立體聲DAC。STM32通過SPI接口與VS1003的串行數(shù)據(jù)接口SI、SO及SCLK傳送指令及數(shù)據(jù),實現(xiàn)系統(tǒng)的音頻控制??紤]到音頻數(shù)據(jù)的容量,主控模塊的U盤控制可作為音頻控制的大容量存儲介質(zhì),實現(xiàn)大量音頻數(shù)據(jù)的儲存。
圖6 實驗系統(tǒng)的音頻控制電路
3.1 DA轉換驅動控制邏輯設計
AD5024通過CPLD接收STM32送出的電壓指令,指令格式及定義見表1。表中,DB23-20為通道地址,當DB23-20為0000B-0011B時分別對應電壓輸出通道VOUTA-VOUTD,本文中指令碼采用0011B,要求寫入指令后立即更新通道數(shù)據(jù)。
表1 AD5024指令格式及定義
AD5024的數(shù)據(jù)接收時序如圖7所示,由
CPLD內(nèi)部專門設計的2個進程:CPU寫進程和并/串轉換進程實現(xiàn)。在STM32寫信號上升沿上,CPLD中的寫進程獲取STM32數(shù)據(jù)總線低12位,結合指令碼0011B、通道地址和無影響位等形成32位的指令,傳送給AD5024。然后,CPLD中的并/串轉換進程拉低同步信號SYN,響應串行數(shù)據(jù)發(fā)送時鐘ADSCK,在ADSCK的上升沿上將32位數(shù)據(jù)由高到低依次送到CPLD的串行數(shù)據(jù)輸出端口ADDIN上。32位數(shù)據(jù)傳輸結束,并/串轉換進程重新置高同步信號SYN,完成一次指令傳送。根據(jù)上述方法,STM32將電壓設定值的數(shù)字量寫入CPLD指定的通道寄存器中,AD5024便輸出所要求的電壓量。
3.2 AD轉換的驅動程序設計
模數(shù)轉換器件MAX196的操作時序如圖8所示。
圖7 AD5024的數(shù)據(jù)接收時序
圖8 MAX196的數(shù)據(jù)接收時序
根據(jù)圖8中的時序關系,STM32通過并行口的低8位向MAX196寫入8位的工作方式控制字,然后檢測轉換結束信號INT。檢測到低電平,STM32啟動一次讀操作,通過利用并口數(shù)據(jù)的低12位來獲取 MAX196轉換后的12位采集電壓值。MAX196的8位控制字D7-D0定義了MAX196工作模式、采集模式、輸入電壓的范圍、輸入的極性的選擇和通道的選擇。本文系統(tǒng)中采用工作模式1,芯片內(nèi)部控制電壓采集模式,輸入模擬量范圍0~10V,單極性輸入,所以將控制字數(shù)據(jù)位D7-D3設置為01010B。
3.3 聲音控制驅動程序設計
實驗系統(tǒng)的音頻控制通過SPI協(xié)議完成,實現(xiàn)過程包括STM32端口配置、SPI接口設置、音頻芯片初始化以及播放控制等階段。執(zhí)行聲音控制時,控制程序根據(jù)硬件連接,設置相關寄存器,配置STM32通用端口,實現(xiàn) VS1003上 DREQ、XDCS、XCS信號的讀寫。然后配置寄存器,利用SPI接口與VS1003實現(xiàn)數(shù)據(jù)交換,這里設置通信模式為全雙工,STM32設置為主控設備,VS1003為從設備,SCK上升沿接收數(shù)據(jù)。
完成上述設置,控制程序開始VS1003的初始化,包括硬件復位、軟件復位、音頻設置3個階段。首先,STM32設置 XRST、XDCS、XCS電平狀態(tài),硬件復位VS1003。然后STM32通過SPI寫入復位指令,VS1003軟件復位。將時鐘頻率、采樣率、重音設置、音量設置寫入相應寄存器,完成音頻控制的初始化。最后,系統(tǒng)打開MP3文件,讀入32字節(jié)數(shù)據(jù)并通過 SPI端口送入 VS1003,檢測到端口DREQ置位,再次讀入32字節(jié)送入VS1003,直至MP3文件結束,從而實現(xiàn)音頻播放[5]。
3.4 U盤控制驅動程序設計
根據(jù)圖3所示的U盤控制電路,CH376的數(shù)據(jù)端口與指令/狀態(tài)端口分別占用實驗系統(tǒng)一對相鄰的偶/奇地址。執(zhí)行U盤文件操作時,控制程序通過并口發(fā)送指令CHECK_EXIST(06H)和任意數(shù)據(jù)來檢測硬件電路。然后,系統(tǒng)發(fā)指令SET_USB_MODE(15H)和數(shù)據(jù)06H,使CH376初始化。發(fā)送指令DISK_CONNECT(30H)并讀取狀態(tài)端口查詢設備連接狀態(tài)。發(fā)送指令DISK_MOUNT(31H)初始化U盤。
U盤文件的基本操作如下:利用指令SET_FILE_NAME(2FH)設置文件名稱后,控制程序可以通過指令FILE_CREATE(34H)創(chuàng)建文件,通過指令FILE_OPEN(32H)打開文件。文件打開后,通過字節(jié)寫指令BYTE_WRITE(3CH)、內(nèi)部指定緩沖區(qū)寫指令WR_REQ_DATA(2DH)以及繼續(xù)字節(jié)寫指令BYTE_WR_GO(3DH),系統(tǒng)將數(shù)據(jù)寫入指定文件。相應的,系統(tǒng)利用字節(jié)讀指令BYTE_READ(3AH)、數(shù)據(jù)塊讀指令RD_USB_DA TA0(27H)和繼續(xù)字節(jié)讀指令BYTE_RD_GO(3BH)讀取指定文件。文件操作完成后,系統(tǒng)CPU調(diào)用指令FILE_CLOSE(36H)關閉文件。
基于STM32處理器的嵌入式實驗系統(tǒng)主要面向嵌入式系統(tǒng)、電子設計自動化等課程的基礎實驗、綜合性實驗,以及運動控制、自動檢測、加工自動化等領域的科技創(chuàng)新實踐與工程科研實驗。
4.1 基礎實驗
針對嵌入式系統(tǒng)設計的課程內(nèi)容,本文實驗系統(tǒng)可以開設的實驗包括STM32集成開發(fā)環(huán)境、GPIO實驗、定時器、片上AD、串行通信等,主要幫助學生了解嵌入式處理器的系統(tǒng)結構,熟悉相關的寄存器、片上外設等的使用,掌握嵌入式系統(tǒng)的開發(fā)流程,常用開發(fā)工具,并初步掌握一定的嵌入式軟件的調(diào)試方法,學生可以通過集成調(diào)試工具、串口助手、板上的LED等形成較為直觀的印象。
實驗系統(tǒng)提供一片144腳的MAXⅡ器件EPM570與100MHz的有源晶振,針對電子設計自動化的課程內(nèi)容,可以完成的基本實驗包括EDA開發(fā)工具、基礎組合邏輯電路與時序邏輯電路設計等,內(nèi)容涵蓋基本運算電路、編碼、譯碼電路、定時/計數(shù)器、移位寄存器。
同時,針對運動控制、數(shù)控原理與系統(tǒng)等課程,實驗系統(tǒng)還可以完成插補控制、刀補控制、電機環(huán)分電路等內(nèi)容。
4.2 綜合性實驗
在課程實驗的基礎上,本文實驗系統(tǒng)還可以進行自動化、測控技術與儀器、機電工程等專業(yè)的跨課程綜合性實驗,內(nèi)容涵蓋嵌入式處理器、ASIC、電機控制、檢測技術等課程,包括相關的信號采集與控制、驅動邏輯、實時顯示與通信等內(nèi)容。如:接口器件設計、圖形顯示、專用鍵盤、電機控制、U盤設計,以及定時/計數(shù)器設計、專用通信邏輯等。4.3 科技創(chuàng)新與科研實踐
由于系統(tǒng)中設計了多通道的高速AD、DA、大容量的U盤存儲、鍵盤電路、彩顯、串行通信接口RS232與高速串口電路SPI等,因此在本文實驗系統(tǒng)基礎上加以適當擴展,可以實現(xiàn)工業(yè)現(xiàn)場的實際控制。同時高性能的嵌入式處理器與可編程邏輯器件MAXⅡ的應用也有利于復雜控制算法的實現(xiàn)。上述設計滿足工業(yè)現(xiàn)場的多軸聯(lián)動、大容量實時存儲、實時采集及顯示等復雜要求。圖9所示為本文實驗系統(tǒng)及其典型應用示例,(a)、(b)分別為實驗系統(tǒng)控制板與學生創(chuàng)新實踐開發(fā)的類Windows界面。
圖9 實驗系統(tǒng)及應用
嵌入式系統(tǒng)作為一種新興的技術,在電機控制、自動檢測、自動化加工領域的有效應用尚需要一個過程,比如在復雜工業(yè)控制中實時控制與多任務處理的矛盾、復雜任務間的協(xié)調(diào)實時控制等問題,都是嵌入式系統(tǒng)應用到工業(yè)控制現(xiàn)場亟待解決的問題。本文提出的專用集成芯片+嵌入式處理器的控制結構和采用的STM32+可編程邏輯器件的解決方案以及開發(fā)的類Windows管理系統(tǒng)等都是針對上述問題進行的有益嘗試,為復雜工業(yè)對象實時控制提供了思路。今后在此基礎上應對專用邏輯控制芯片、自主知識產(chǎn)權的操作系統(tǒng)、協(xié)調(diào)控制算法等進行進一步研究,這對解決工業(yè)現(xiàn)場的復雜控制問題乃至嵌入式系統(tǒng)與其他領域的融合均有重要的意義。
[1]于才,劉大銘,何萍.基于STM32的溫室智能灌水系統(tǒng)設計[J].工業(yè)控制計算機,2012,25(2):93-94.
[2]王愛林,劉榮華,嚴頂.基于STM32的CAN-USB轉換模塊[J].儀表技術與傳感器,2012(6):71-73.
[3]張陳,李文靜.基于STM32的測力儀設計[J].測試技術學報,2011,25(6):515 -518.
[4]ST Microelectronics.RM0008 Reference Manual[M].Geneva(Switzerland):ST Microelectronics,2009:1-20.
[5]VLSI Solution company.VS1003 PRELIMINARY[M].Tampere(Finland):VLSI Solution Company,2005:1-55.
Development of STM32 Series CPU Oriented Experimental System
YANG Fatian,GE Hongyu,ZHANG Jianhua,XIONG Chao
(Nanjing Institute of Technology,Jiangsu Nanjing,211167,China)
It establishes the structure of Application Specific Integrated Circuit(ASIC)+embedded microcontroller for real-time control system with a typical ARM cortex microprocessor,STM32,and a typical Programmable Logic Device(PLD),EPM570.According to the requirements of industrial control on real-time performance,integration level,it develops the control circuits on CPU module,U - disk and other peripheral and relative drivers,proposes the course requirements for Electronic Design Automation(EDA),embedded system and introduces relative course fundament experiments,comprehensive experiments.This system is verified with series scientific research and college student innovation projects.
Embedded System;CPLD;Industrial Control;Experiment;Teaching
TP273
A
2095-509X(2013)03-0057-05
2012-10-29
江蘇省高校自然科學基金資助項目(09KJB460005);江蘇省高等學校大學生實踐創(chuàng)新訓練計劃項目(166201110030)
楊發(fā)田(1989—),男,甘肅金昌人,南京工程學院本科生,專業(yè)為自動化。