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