基于STM32數(shù)據(jù)傳輸轉(zhuǎn)換接口器的設(shè)計(jì)與實(shí)現(xiàn)
引言
在當(dāng)今高速實(shí)時數(shù)字信號處理系統(tǒng)中,涉及的數(shù)據(jù)對象趨于多樣化,這些數(shù)據(jù)通常采用不同的電氣接口,具有不同的傳輸速率、傳輸方向?,F(xiàn)代機(jī)電一體化控制設(shè)備中,如工業(yè)加注機(jī)、設(shè)備清洗機(jī)控制系統(tǒng)基本是PLC與顯示屏加儀表等構(gòu)成的小型計(jì)算機(jī)控制系統(tǒng)。但現(xiàn)在工業(yè)已經(jīng)進(jìn)入了數(shù)字化、智能化時代,進(jìn)入物聯(lián)網(wǎng)領(lǐng)域,要求信息共享,生產(chǎn)過程信息化、網(wǎng)絡(luò)化管理,提高生產(chǎn)效率,降低人員勞動強(qiáng)度。所以要滿足上述需求,保留原有設(shè)備及控制系統(tǒng),進(jìn)行新老交替,則需要在原有控制柜基礎(chǔ)上增加數(shù)據(jù)交換接口模塊,如圖1所示?;诖?,我們以數(shù)字信號處理器STM32為核心,設(shè)計(jì)了適于多種標(biāo)準(zhǔn)接口數(shù)據(jù)傳輸接口器,以實(shí)現(xiàn)系統(tǒng)的數(shù)據(jù)交互。
圖1具有數(shù)據(jù)傳輸交換接口器的控制系統(tǒng)框架
1、接口器原理
該接口器以STM32F微控制器為核心,配一RS-232電平轉(zhuǎn)換芯片,RS-485轉(zhuǎn)換芯片,以太網(wǎng)控制芯片,EP-PROM存儲芯片、SD卡以及時鐘控制芯片來實(shí)現(xiàn)各種數(shù)據(jù)的轉(zhuǎn)換以及存儲。
系統(tǒng)主要分了5個部分:電源管理模塊,實(shí)時時鐘模塊,大批量數(shù)據(jù)存儲模塊,標(biāo)準(zhǔn)數(shù)據(jù)轉(zhuǎn)換接口模塊和輸入輸出模塊,如圖2所示。
圖2數(shù)據(jù)交換接口器原理框架
2、硬件設(shè)計(jì)
2.1、接口器控制核心
該接口器核心是ST系列的工業(yè)級單片機(jī)芯片STM32F107VCT6。該芯片是ARMCortex-M3內(nèi)核的32位微控制器,具有極強(qiáng)的抗干擾能力,寬電壓2-3.5V使用范圍,硬件集成了乘除算法,便于進(jìn)行復(fù)雜的浮點(diǎn)運(yùn)算,該芯片的升級版具有DSP功能,運(yùn)算能力強(qiáng),速度快;可嵌入操作系統(tǒng),其運(yùn)算能力較工業(yè)控制機(jī)強(qiáng)的多??刂破魍鈬娐愤x用2個外部晶體諧振器,頻率分別是25MHz和32.768kHz。一個單獨(dú)的25MHz晶體可以為整個系統(tǒng)和所有包括以太網(wǎng)和全速USBOTG的外設(shè)提供時鐘。一個單獨(dú)32.768kHz的低速外部晶體諧振器為實(shí)時時鐘或者其它定時功能提供一個低功耗且精確的時鐘源。用戶可以通過多個分頻器來配置AHB和APB,從而使得系統(tǒng)的各個外設(shè)都能獲得合適的時鐘。
2.2、電源管理模塊
由于現(xiàn)在的工業(yè)現(xiàn)場所使用的設(shè)備一般都是24V直流供電,該接口器采用了24V直流供電。接口器的控制核心芯片電壓為3.3V,所以為了滿足要求,就必需要進(jìn)行一系列的電壓轉(zhuǎn)換過程,從而滿足各個功能模塊的供電需求。
該接口器有繼電器輸出,為了防止數(shù)字信號受到模擬信號的干擾,選用LM2596-5.0芯片、DC-DC隔離開關(guān)電源模塊19D-05S05R、兩片SPX1117芯片。如圖3所示,該電路輸出兩路3.3V電源,實(shí)現(xiàn)模擬地和數(shù)字地的隔離。19D-05S05R隔離模塊防浪涌、防電磁干擾、抑制尖峰電流設(shè)計(jì)。該電路十分穩(wěn)定可靠,同時加二極管D1實(shí)現(xiàn)反向保護(hù)。
圖3電源管理模塊框架
2.3、大量數(shù)據(jù)存儲模塊
該接口器擴(kuò)展1片容量為256K的AT25256的EEP-ROM芯片。該芯片的擦寫周期為100000次,數(shù)據(jù)保存時間大于200年,應(yīng)用穩(wěn)定可靠。主要應(yīng)用存放重要數(shù)據(jù)和參數(shù)。該芯片與STM32接口方式采用的是SPI同步串行總線通信方式。為滿足現(xiàn)場頻繁儲存的大量數(shù)據(jù),該接口器設(shè)計(jì)一個標(biāo)準(zhǔn)的SD卡接口,如圖4所示,最大可擴(kuò)展到2GB,使用的SD卡是SPI模式通信,從而達(dá)到數(shù)據(jù)的快速存儲、實(shí)時記錄以及供上位機(jī)通過RS232/RS485總線、以太網(wǎng)調(diào)用的目的。
圖4SD卡與STM32接口電路
2.4、實(shí)時時鐘模塊
該接口器設(shè)計(jì)了一個實(shí)時時鐘控制器,主要用于實(shí)時數(shù)據(jù)記錄時的時間參考,同時也提供一個實(shí)時時鐘,該系統(tǒng)采用的時鐘芯片是RX8025。RX8025是愛普生(EP-SON)公司生產(chǎn)的一種采用I2C總線接口的實(shí)時時鐘芯片,內(nèi)置高精度可調(diào)整的32.768kHz的水晶振子,工作穩(wěn)定可靠,具有很強(qiáng)的抗干擾能力。同時它的功能非常完善,支持多達(dá)6種中斷事件產(chǎn)生中斷,可以啟動2種鬧鈴功能,當(dāng)芯片振動停止時可以實(shí)現(xiàn)自動檢測,可以進(jìn)行時鐘精度調(diào)整以及電源電壓監(jiān)視功能。另外內(nèi)部振蕩回路是以固定電壓驅(qū)動,因而可獲得受電壓變動影響小且穩(wěn)定的32.768kHz時鐘輸出。如圖5所示。
圖5實(shí)時時鐘電路
2.5、標(biāo)準(zhǔn)通訊接口
該接口器的核心功能模塊便是數(shù)據(jù)轉(zhuǎn)換接口,它包括4種接口,分別是標(biāo)準(zhǔn)RS-232接口,RS-485接口,標(biāo)準(zhǔn)RJ-45接口和標(biāo)準(zhǔn)MiniUSB2.0接口。這4種接口可謂是目前市場上各種終端設(shè)備使用最多的數(shù)據(jù)接口了。RS-232接口選用MAX3232芯片進(jìn)行電平匹配,RS-485選用SP3485芯片實(shí)現(xiàn)RS485協(xié)議。為實(shí)現(xiàn)通訊隔離,該接口電平全部采用高速ADUM1311磁耦隔離進(jìn)行隔離,該隔離芯片最大傳輸速率達(dá)25MBPS。利用STM32F107內(nèi)部集成的MAC控制器[10]通過RMII接口方式和DP83848芯片相連即可,原理如圖6所示。
圖6以太網(wǎng)與STM32接口電路
2.6、輸入輸出接口
接口器提供了四路繼電器輸入和四路光耦隔離輸出,為了配合新增輔助設(shè)備動作,實(shí)現(xiàn)過程聯(lián)動控制。輸入電路采用光電隔離芯片TLP181,增加滯回電路、反向穩(wěn)壓管防抖動等電路;輸出采用ULN2003接+24V繼電器,電路增加電容及反向二極管防抖動和電流沖擊。該I/O的電路設(shè)計(jì)參考了世界品牌的PLC的I/O電路,可靠程度很高。
3、軟件設(shè)計(jì)
該軟件設(shè)計(jì)沒有采用嵌入式操作系統(tǒng)的移植,而采用單片機(jī)類C語言編程,因?yàn)樗哂泻啙嵕o湊、靈活方便,容易掌握,用戶應(yīng)用廣泛,生成目標(biāo)代碼質(zhì)量高和適用范圍大可移植性強(qiáng)等特點(diǎn),故可編寫高可靠的功能函數(shù)。
4、測試結(jié)果
4.1、RS-232以及RS-485軟件仿真及測試
測試程序主要實(shí)現(xiàn)數(shù)據(jù)在2個串口之間的相互傳輸?,F(xiàn)在很多機(jī)電控制柜上的老式PLC不具備大批量數(shù)據(jù)的存儲能力,因此無法實(shí)現(xiàn)數(shù)據(jù)的查詢。利用接口器可以作一個過渡,把大量數(shù)據(jù)存儲到處理器上,通過雙串口功能來解決這一難題。該測試的硬件連接如圖7所示,使用2個串口調(diào)試助手仿真軟件來接收不同串口發(fā)送的數(shù)據(jù),模擬軟件的仿真結(jié)果如圖8、圖9所示。
圖7 RS-232/485仿真及測試
測試的時候,利用串口1模擬數(shù)據(jù)接收端,串口2模擬數(shù)據(jù)發(fā)送端,當(dāng)串口1接收到數(shù)據(jù)時,把接收到的數(shù)據(jù)原封不動地通過串口2發(fā)送出去。經(jīng)過長時間的測試結(jié)果分析可知,2個串口無論是哪個作為接收端或者發(fā)送端都能正確無誤的接收和發(fā)送數(shù)據(jù),數(shù)據(jù)無丟失。以此可以證明該處理器通過RS232/485輸出數(shù)據(jù)很可靠,另外該程序還完成了RS-232轉(zhuǎn)RS-485的功能,通過RS-485接口接收工業(yè)現(xiàn)場采集到的數(shù)據(jù),然后再通過串口發(fā)送給計(jì)算機(jī)進(jìn)行數(shù)據(jù)存儲及分析,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。該RS-485接口實(shí)現(xiàn)了64臺設(shè)備組網(wǎng)控制的驗(yàn)證。
4.2、以太網(wǎng)程序的仿真及測試
該接口器使用的是STM32F微控制器和DP83848芯片來實(shí)現(xiàn)以太網(wǎng)的控制。該控制器內(nèi)部集成了MAC控制模塊,該模塊符合IEEE802.3協(xié)議。并且ST公司提供了MAC相關(guān)的一些驅(qū)動程序,這就為我們的開發(fā)提供了很大的方便。本程序使用了一個開源的TCP/IP協(xié)議棧,該協(xié)議棧為我們提供了非常豐富的接口函數(shù),移植完成以后我們可以直接使用這些接口函數(shù)來進(jìn)行編程。據(jù)此編寫了該通訊的功能軟件函數(shù),實(shí)現(xiàn)UDP協(xié)議傳輸和TCP協(xié)議傳輸。測試硬件連接圖如圖10所示,計(jì)算機(jī)和模塊同時連接到同一個路由器上。計(jì)算機(jī)設(shè)定一個固定IP地址,接口器網(wǎng)絡(luò)功能模塊也設(shè)定了一個固定的IP地址,把程序下載到模塊以后上電運(yùn)行,網(wǎng)絡(luò)模塊就可以和計(jì)算機(jī)進(jìn)行通信了。利用以太網(wǎng)調(diào)試助手來實(shí)現(xiàn)對該功能程序進(jìn)行調(diào)試,UDP通信結(jié)果如圖11所示,TCP通信結(jié)果如圖12所示。數(shù)據(jù)在反復(fù)通訊顯示,長時間的烤機(jī)證明,網(wǎng)絡(luò)通訊效果也很好。
圖10以太網(wǎng)通訊仿真及測試
5、結(jié)束語
本文針對工業(yè)現(xiàn)場的小控制柜設(shè)計(jì)的數(shù)據(jù)傳輸轉(zhuǎn)換接口器,通過該接口可實(shí)現(xiàn)條形碼的識別、數(shù)據(jù)實(shí)時存儲、數(shù)據(jù)無線傳輸?shù)裙δ埽蓪⒃刂葡到y(tǒng)功能擴(kuò)大。微控制器STM32F107VCT6是非??煽康墓I(yè)級芯片,配以可靠的功能芯片可構(gòu)成十分可靠的接口器。該數(shù)據(jù)傳輸轉(zhuǎn)換接口器可滿足一般工業(yè)控制系統(tǒng)數(shù)據(jù)傳輸要求,現(xiàn)已初步在實(shí)際得到應(yīng)用。