居 曉,李志宇,肖莉萍
(1.南京航空航天大學(xué) 自動化學(xué)院,江蘇 南京 210016; 2.南京航空航天大學(xué) 無人機(jī)研究院,江蘇 南京 210016)
在一些復(fù)雜的控制領(lǐng)域中,控制計算機(jī)往往需要與多個終端進(jìn)行信息的交互通信。但由于工程現(xiàn)場環(huán)境的限制和應(yīng)用設(shè)備的日漸增多,近距離集中式的通信管理已不再具有普遍適用性。
隨著遠(yuǎn)程集散控制理念的出現(xiàn),串行數(shù)據(jù)通信因其結(jié)構(gòu)簡單、設(shè)計方便、價格低廉、占用資源少[1]、傳輸距離遠(yuǎn)等優(yōu)勢而得到了廣泛普及。而近年來串口通信正朝著帶寬、速度、穩(wěn)定性逐漸增加的方向發(fā)展[2],利用多個串口進(jìn)行信號采集或數(shù)據(jù)傳輸為多設(shè)備分布式布局提供了可能。但一般的處理器板卡只有一至兩個RS232串口,難以滿足控制系統(tǒng)對串口數(shù)量和數(shù)據(jù)傳輸過程中抗干擾性能的要求,因此需要對串口進(jìn)行擴(kuò)展設(shè)計。
傳統(tǒng)的串口擴(kuò)展設(shè)計多以微控制器與串口芯片在板集成的方式實(shí)現(xiàn),需單獨(dú)設(shè)計其控制電路和外圍接口電路,周期較長,靈活性低,且穩(wěn)定性和抗干擾性仍有待驗證。MPC565與EMM串口卡技術(shù)相對更加成熟,各性能指標(biāo)已經(jīng)過長期的實(shí)踐驗證,同樣具有的PC/104總線結(jié)構(gòu)使其能夠以簡單的插拔方式實(shí)現(xiàn)串口功能的擴(kuò)展,使用靈活、方便。因此本文結(jié)合以PowerPC嵌入式處理器MPC565為核心的飛控計算機(jī)開發(fā)平臺,介紹一種多串口通信在實(shí)際工程應(yīng)用中的擴(kuò)展方法。利用MPC565與EMM-8M-XT組成串口擴(kuò)展系統(tǒng),通過簡單的搭積木方式實(shí)現(xiàn)8個通信方式可配置的串口擴(kuò)展。
本文涉及的內(nèi)容已成功應(yīng)用于某型無人機(jī)飛控系統(tǒng)的預(yù)研開發(fā)。眾所周知,無人機(jī)飛行控制系統(tǒng)是個典型的多輸入、多輸出系統(tǒng),其多外設(shè)平臺大多采用分布式布局[3],串行通信逐漸成為了各傳感器及任務(wù)設(shè)備與飛控計算機(jī)內(nèi)核之間的主要通信方式,高質(zhì)量的數(shù)據(jù)傳輸尤其重要。
本文中飛控計算機(jī)內(nèi)核采用具有PC/104結(jié)構(gòu)的MPC565板卡。PowerPC系列的MPC565處理器具有較高的硬件穩(wěn)定性和抗干擾性,工作頻率可達(dá)50 MHz以上,在無操作系統(tǒng)的情況下也能可靠、靈活的直接操作硬件,運(yùn)算處理能力強(qiáng)大,可靠性高,工作溫度范圍-40℃~+85℃,同時應(yīng)用PC/104總線結(jié)構(gòu)還可以外接串口、A/D、D/A、I/O等功能組件,為其提供了方便的資源擴(kuò)展能力,且有利于功能的模塊化集成。MPC565可通過簡單的插拔方式與同樣具有PC/104結(jié)構(gòu)的EMM-8M-XT實(shí)現(xiàn)串口功能的擴(kuò)展。EMM-8M-XT串口板提供8個通信模式可配置的串行接口,分別連接磁羅盤、大氣機(jī)、GPS、慣導(dǎo)等設(shè)備,完成不同的任務(wù)功能。擴(kuò)展串口通信后飛控系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 多串口通信系統(tǒng)結(jié)構(gòu)圖Fig. 1 Schematic diagram of multi-serial ports communication system
本文應(yīng)用的MPC565板卡設(shè)有3個RS232通信串口,主要用于程序裝訂和飛控參數(shù)的測試,因此需額外的串口模塊來滿足飛控計算機(jī)的基本功能。這里選用DIAMOND公司的EMM-8M-XT串口模塊實(shí)現(xiàn)串口功能的擴(kuò)展。
EMM-8M-XT串口模塊集成了兩個高性能的16C654控制芯片,8個獨(dú)立的串口通道各有64字節(jié)的接收緩沖器和發(fā)送緩沖器,自動軟硬件流程控制,最高配置波特率可達(dá)1.5 Mb/s,有10個不同的中斷優(yōu)先級可選。每個通道的狀態(tài)可以通過CPU的操作讀取寄存器。三態(tài)輸出為雙向數(shù)據(jù)總線和控制總線提供TTL驅(qū)動能力、優(yōu)先級中斷系統(tǒng)控制、可編程的串行接口特性[4-5]。串口基地址、中斷號和通信模式(RS232/422/485可選)亦可通過硬件跳線靈活配置,如圖2和圖3所示。
圖2 基地址和中斷號跳線設(shè)置示意圖Fig. 2 Sketch map of jumper configuration for base address and interrupt number
圖3 通信模式跳線設(shè)置示意圖Fig. 3 Sketch map of jumper configuration for communication mode
為防止與其他PC/104結(jié)構(gòu)的板卡沖突,在這里把串口板的基地址設(shè)為200H,port1~port8共用3號中斷。基地址跳線J9的A、B、C、D定義如圖4所示,“In”表示放置跳線,“Out”表示不放置跳線。每個串行口的基地址和中斷號信息均保存在EEPROM中,上電后板卡從中讀取這些數(shù)據(jù),自動完成基地址和中斷號的初始配置。
圖4 基地址跳線定義圖Fig. 4 Definition chart of jumper for base address
應(yīng)用軟件采用C語言編程,可讀性好,主要分為串口板初始化軟件和串口中斷服務(wù)軟件。EMM-8M-XT的8個串口相對獨(dú)立。除共用中斷級外,MPC565可對每個串口的特性進(jìn)行單獨(dú)控制,因此波特率、數(shù)據(jù)格式、緩沖區(qū)深度等需通過初始化軟件依次設(shè)置。8串口初始化流程和中斷處理流程如圖5所示。
用中斷方式實(shí)現(xiàn)芯片功能比查詢方式能更有效地利用CPU,具有更好的實(shí)時性,大批量數(shù)據(jù)傳輸時中斷方式更能顯示出其優(yōu)勢。
圖5 串口初始化流程圖Fig. 5 Flow chart of serial port initialization
圖6 中斷處理函數(shù)流程圖Fig. 6 Flow chart of interrupt service routine
本例中8個串口共用3號中斷,由內(nèi)部硬件機(jī)制完成板級中斷狀態(tài)寄存器相應(yīng)位的置位與清零。在中斷處理子程序中,首先要關(guān)閉 CPU 響應(yīng)其他中斷的能力,以免造成多層中斷嵌套可能導(dǎo)致的程序死機(jī)[6-7]。這樣即使中斷同時到來各串口也能正常工作,不會出現(xiàn)搶占現(xiàn)象,亦不會產(chǎn)生中斷阻塞或丟失情況。8個串口共用3號中斷,具體哪一個通道產(chǎn)生中斷由位于202H的中斷狀態(tài)寄存器指示(bit0~bit7分別代表1~8號串口)。中斷發(fā)生后,CPU將“一視同仁”,按照3號中斷處理函數(shù)內(nèi)設(shè)置的中斷狀態(tài)查詢次序,對到來的中斷依次響應(yīng)。數(shù)據(jù)接收或發(fā)送時,各串口采用相同的中斷處理流程,下面以串口中斷服務(wù)程序為例,對軟件設(shè)計思路進(jìn)行描述。
串口中斷處理程序EMMComInterrupt:
多串口通信擴(kuò)展系統(tǒng)實(shí)物圖如圖7所示。實(shí)際應(yīng)用中分別對8個串口進(jìn)行了局部測試和系統(tǒng)測試,如圖8所示。在115200bps的高波特率下,長時間的通信驗證未出現(xiàn)幀格式錯誤和丟幀現(xiàn)象。中斷的收發(fā)方式亦同時保證了較高的傳輸速度和對其它任務(wù)的實(shí)時響應(yīng)。
圖7 多串口通信系統(tǒng)實(shí)物圖Fig. 7 Real picture of multi-serial ports communication system
圖8 多串口通信系統(tǒng)實(shí)物圖Fig. 8 Real picture of multi-serial ports communication system
文中利用PC/104總線結(jié)構(gòu)的PowerPC嵌入式處理器MPC565和串口模塊EMM-8M-XT成功構(gòu)建了多串口通信擴(kuò)展系統(tǒng)。各串口在帶有校驗機(jī)制的長時間連續(xù)串行通信測試中,RS232、RS422、RS485 3種工作模式下均收發(fā)正常,幀格式正確且誤碼率極低。系統(tǒng)測試中,8個串口工作于無人機(jī)機(jī)載復(fù)雜電磁環(huán)境和溫變循環(huán)(-40℃、+85℃)等惡劣條件下,能夠長時間連續(xù)穩(wěn)定的進(jìn)行數(shù)據(jù)傳輸,具有較強(qiáng)的抗干擾能力和良好的實(shí)時性能。
該多串口通信系統(tǒng)結(jié)構(gòu)簡單,插拔式的PC/104總線結(jié)構(gòu)使其具備了豐富的資源擴(kuò)展能力。該設(shè)計方法已成功應(yīng)用于某型無人機(jī)相似余度結(jié)構(gòu)飛控計算機(jī)的原理樣機(jī)開發(fā)中,對工業(yè)控制領(lǐng)域的其它類似應(yīng)用可提供參考和借鑒。
[1]蘭立榮,閆繼英,林海土, 等.基于 ARM 處理器設(shè)備的多串口設(shè)計與實(shí)現(xiàn)[J]. 儀表技術(shù),2011(5):19-21.LAN Li-rong, YAN Ji-ying,LIN Hai-tu,et al.Design and implementation of multi-channel UART based on ARM apparatus[J]. Instrumentation Technology,2011(5):19-21.
[2]Chen Z H,Shi M, Yi Q M.A method for DSP asynchronous serial port expansion based on TL16C752B[C]//Business Management and Electronic Information (BMEI),2011 International Conference on.IEEE, 2011(1):844-847.
[3]李志宇,肖前貴.應(yīng)用PC/104模塊實(shí)現(xiàn)多串口通訊擴(kuò)展設(shè)計[J].工業(yè)控制計算機(jī),2004,17(9): 43-44.LI Zhi-yu,XIAO Qian-gui.Design of extending multi-serial ports communication by applying PC/104 modules[J].Industrial Control Computer, 2004,17(9):43-44.
[4]林為傳,韓曉晨,陳覺之.基于MPC860與ST16C654的串行通信設(shè)計[J].電子設(shè)計工程,2010,18(7):158-160.LIN Wei-chuan, HAN Xiao-chen, CHEN Jue-zhi. Design of serial communications based on MPC860 and ST16C654[J].Electronic Design Engineering, 2010, 18(7): 158-160.
[5]宋宇,于耀,周余,等.智能配電數(shù)字終端的轉(zhuǎn)串口芯片驅(qū)動設(shè)計[J].電子測量技術(shù),2013, 36(2): 68-71.SONG Yu,YU Yao, ZHOU Yu, etc. Serial chip driver design of digital terminal for intelligent power distribution[J].Electronic Measurement Technology,2013,36(2):68-71.
[6]李偉. 基于中斷方式的TL16C754B的串口通信驅(qū)動程序的開發(fā)[J]. 測控技術(shù),2012,31(4): 93-95.LI Wei.Driver program development of TL16C754B based on interrupt[J].Measurement & Control Technology,2012,31(4):93-95.
[7]吳春瑜,李璟,王相森. 通用異步收發(fā)器TL16C554分析[J].遼寧大學(xué)學(xué)報: 自然科學(xué)版,2007,34(4):315-318.WU Chun-yu,LI Jing, WANG Xiang-sen.Analysis of UART TL16C554[J].Journal of Liaoning University: Natural Sciences Edition, 2007,34(4):315-318.