任閣
摘 要:本設(shè)計以創(chuàng)新型LPC824微處理器芯片為硬件核心,外擴(kuò)工業(yè)常用的控制接口、通訊接口以及常用的功能模塊,在μVision5環(huán)境下開發(fā)片內(nèi)外設(shè)和外部擴(kuò)展器件的驅(qū)動。平臺軟件中實現(xiàn)了Modbus協(xié)議棧,可以實現(xiàn)主機和從機的組網(wǎng)通訊。
關(guān)鍵詞:ARM;Modbus;LPC824;開發(fā)平臺
DOI:10.16640/j.cnki.37-1222/t.2016.06.021
0 引言
創(chuàng)新型微處理器LPC824可覆蓋8 位/16 位,同時其內(nèi)核為32 位ARM? Cortex?-M0+處理器,運行頻率最高可達(dá)到30MHz,片上擁有豐富的接口,可以支持3路UART、2路SPI 和4路I ?C,為平臺開發(fā)的理想芯片,可作為很多儀表的更新替代內(nèi)核芯片。平臺選擇LPC微處理器,加入工業(yè)控制中常用到的外設(shè),使ARM系列處理器擁有非常優(yōu)良的應(yīng)用性能。在μVision5環(huán)境下開發(fā)可剪裁、可移植的程序,實現(xiàn)Modbus協(xié)議的主從機通訊。使用此平臺開發(fā)的主機具有較高且可靠的實時性,可組建工業(yè)總線網(wǎng)絡(luò),實現(xiàn)集中控制,擁有靈活性高,維護(hù)和升級成本低,易于擴(kuò)展等優(yōu)點。
1 設(shè)計思路
工業(yè)現(xiàn)場常用的控制信號有隔離的開關(guān)量、繼電器輸出、4~20mA電流輸出、模擬轉(zhuǎn)數(shù)字模塊和串行通信等。根據(jù)這些比較常用的接口或需要的功能設(shè)計軟硬件。
2 硬件設(shè)計
平臺硬件主要構(gòu)成為:LPC824、4~20mA電流產(chǎn)生電路、異種電源隔離、16位可編程計數(shù)器、E?ROM數(shù)據(jù)存儲和RS232串口構(gòu)成。其中高性能的ARM采用NXP公司的LPC824.支持3路ART、2路SPI和4路I ?C;此外芯片內(nèi)部還集成了12MHz 的RC 振蕩器,可以作為系統(tǒng)的時鐘源。4~20mA電流產(chǎn)生采用AD421芯片配合外圍芯片;隔離芯片采用高速電偶合成器6N137和雙向光耦繼電器AWQ210;應(yīng)用16位可編程計數(shù)器8254;數(shù)據(jù)存儲采用I?C接口的電源監(jiān)控芯片CAT1025中的E?ROM;RS-232串口采用美信的MAX232。
3 軟件設(shè)計
3.1 采用μVision5環(huán)境進(jìn)行編程
LPC824內(nèi)核具有單片機編程環(huán)境下達(dá)到ARM性能的特點,可在線仿真,現(xiàn)采用μVision5環(huán)境進(jìn)行模擬實驗,編寫出可以并且方便移植的程序模塊。
3.2 使用Modbus協(xié)議
作為一款應(yīng)用于多個領(lǐng)域,取得很好口碑的協(xié)議,Modbus作用豐富。通過此協(xié)議,控制器經(jīng)由網(wǎng)絡(luò)與其他的設(shè)備通訊。定義一個控制器方便識別使用的消息結(jié)構(gòu)即可,不必關(guān)心底層如何運行,它描述的是一個過程,即控制器請求訪問,至于如何回應(yīng)來自其他設(shè)備的請求,如何偵測錯誤并記錄,它指定了消息域格式。
在工業(yè)儀表使用時,通常安裝在測量、控制現(xiàn)場,多使RS-485串口通訊方式與中央控制室中的工控機通訊。為了使儀表達(dá)到為客戶節(jié)省成本的目的,需要選擇一個標(biāo)準(zhǔn)同時可使儀表連接到工業(yè)網(wǎng)絡(luò)的通訊協(xié)議,這一部分有很多選擇,考慮到工業(yè)環(huán)境惡劣,電磁干擾強烈,最終選擇使用Modbus協(xié)議。
3.3 Modbus的實現(xiàn)
詳細(xì)介紹使用Modbus RTU協(xié)議完成從站和主站的協(xié)議棧。
從站協(xié)議棧程序從從站協(xié)議的數(shù)據(jù)打包開始,期間完成通訊,超時檢測,完整性檢測,CRC校驗和仿真器服務(wù)任務(wù)的代碼,主要又Time1中斷服務(wù)程序,UART0中斷服務(wù)程序和虛擬仿真器完成。用戶實際應(yīng)用時,首先創(chuàng)建從機協(xié)議棧的服務(wù)任務(wù),然后在用戶的應(yīng)用任務(wù)中,根據(jù)實際情況初始化從站協(xié)議棧,操作保持寄存器,輸出寄存器和線圈即可。
主機協(xié)議棧程序完成了與從機協(xié)議棧同樣的功能,主要由Timer0中斷服務(wù)程序,UART1中斷服務(wù)程序和上位機仿真器完成,用戶實際應(yīng)用時,首選創(chuàng)建主機協(xié)議棧的服務(wù)任務(wù),然后用戶的應(yīng)用任務(wù)中,根據(jù)實際情況初始化主機協(xié)議棧。調(diào)用主機工鞥函數(shù)對從機操作,功能函數(shù)返回操作結(jié)果代碼,用戶任務(wù)可根據(jù)操作結(jié)果代碼決定具體動作。
例1:讀保持寄存器的功能請求數(shù)據(jù)幀和從機返回應(yīng)答數(shù)據(jù)幀。定義CAT1025中的E ?ROM為Modbus從機的保持寄存器,發(fā)送數(shù)據(jù)幀為十六進(jìn)制02 03 00 00 00 23 04 20,02是從機地址,03是讀保持寄存器的功能代碼,00 00是起始地址的高8位和低8位,00 23是數(shù)據(jù)個數(shù)的高8位和低8位,04 20是CRC校驗的高8位和低8位。從機應(yīng)答返回數(shù)據(jù)幀包括,從機地址,主機請求功能代碼,數(shù)據(jù)個數(shù),數(shù)據(jù),CRC校驗。
例2:寫單個線圈的功能請求數(shù)據(jù)幀。定義一個IO口控制發(fā)光二極管為從機中地址是2的線圈,打開線圈功能請求數(shù)據(jù)幀為十六進(jìn)制02 05 00 02 FF 00 2D C9,02是從機地址,03是寫單個線圈的功能代碼,00 02是線圈地址的高8位和低8位,F(xiàn)F 00是數(shù)據(jù)的高8位和低8位,2D C9是CRC校驗的高8位和低8位。關(guān)閉線圈功能請求數(shù)據(jù)幀為十六進(jìn)制02 05 00 02 00 6C 39,02是從機地址,03是寫單個線圈的功能代碼,00 02是線圈地址的高8位和低8位,00 00 是數(shù)據(jù)的高8位和低8位,6C 39是CRC校驗的高8位和低8位。
經(jīng)過驗證,以上兩個例可以可靠的進(jìn)行。
4 結(jié)束語
經(jīng)過多方驗證,設(shè)計平臺滿足現(xiàn)場儀表的改進(jìn)要求,本文詳細(xì)介紹了應(yīng)用LPC824和Modbus協(xié)議作為嵌入式工業(yè)儀表開發(fā)平臺的方法,平臺硬件設(shè)計合理,工作可靠,功耗低;軟件方法易于移植;通訊方法目前在工業(yè)儀表中為主流方法,可組建工業(yè)網(wǎng)絡(luò),在開發(fā)工業(yè)儀表過程中,具有很高的參考價值。
參考文獻(xiàn):
[1]廣州周立功單片機科技有限公司.AM824開發(fā)套件硬件設(shè)計指南V1.0[J].2015,8(30).
[2]百度文庫 Modbus協(xié)議.