隋功浩 彭軍民 張 奇
隨著鐵路高速、高密度行車區(qū)段不斷增加,工務(wù)和電務(wù)的人工維護(hù)維修負(fù)擔(dān)越來越大,利用鐵路道岔監(jiān)測(cè)系統(tǒng)實(shí)現(xiàn)對(duì)道岔設(shè)備的綜合實(shí)時(shí)監(jiān)測(cè)已經(jīng)成了迫切要求。然而,鐵路現(xiàn)場(chǎng)工作環(huán)境比較復(fù)雜,各種電力通信電纜都集中鋪設(shè)在電纜溝中,電磁干擾很大。因此,需要一種可靠性高、兼容性好的現(xiàn)場(chǎng)總線。
LonWorks現(xiàn)場(chǎng)總線是由美國(guó)Echelon公司推出的局部操作系統(tǒng),具有統(tǒng)一性、開放性、互操作性,以及支持多種通信媒質(zhì)等優(yōu)良性能。一般鐵路車站的道岔分布比較分散,呈片狀分布,難以通過單一總線連接所有軌旁箱。而LonWorks(LON)總線支持自由拓?fù)浣Y(jié)構(gòu),對(duì)現(xiàn)場(chǎng)的適應(yīng)性更好。但是由于Neuron芯片的應(yīng)用處理能力相對(duì)較弱,對(duì)于復(fù)雜的應(yīng)用常使用主從處理器結(jié)構(gòu),主處理器完成用戶應(yīng)用功能,而把Neuron芯片作為通信網(wǎng)關(guān)。RS-232是異步串行通信中應(yīng)用最普遍的標(biāo)準(zhǔn)總線,有必要開發(fā)一種LonWorks-RS-232的嵌入式網(wǎng)關(guān),解決道岔監(jiān)測(cè)系統(tǒng)的通信需求。
LonWorks總線利用道岔區(qū)域既有的一對(duì)雙絞線進(jìn)行傳輸,網(wǎng)絡(luò)傳輸速率達(dá)到78kb/s。使用自由拓?fù)鋾r(shí),傳輸距離可達(dá)到500m,使用Doubly總線結(jié)構(gòu)時(shí),傳輸距離可達(dá)到2700m。需要指出的是,當(dāng)使用現(xiàn)場(chǎng)雙絞線/電力線時(shí),傳輸距離有所下降。系統(tǒng)總體結(jié)構(gòu)如圖1所示,使用Neuron芯片完成LON-RS232網(wǎng)關(guān)功能,微處理器作為主處理器,完成數(shù)據(jù)處理等主要功能。
目前設(shè)計(jì)與實(shí)現(xiàn)LON-RS232嵌入式網(wǎng)關(guān)主要有2種方案。
第1種方案,如圖2所示,采用Neuron芯片與另外的控制器或并行接口芯片進(jìn)行數(shù)據(jù)交換,通過軟件編程實(shí)現(xiàn)網(wǎng)關(guān)。
第2種方案,Neuron芯片的串行輸入、輸出符合EIA-232(RS-232C)標(biāo)準(zhǔn),直接采用Neuron芯片及其內(nèi)部軟件編程實(shí)現(xiàn)網(wǎng)關(guān),無需外圍接口芯片,硬件成本低。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
圖2 網(wǎng)關(guān)方案1原理圖
第1種方案需要占用Neuron芯片的多個(gè)IO管腳,與另外的控制器或并行接口芯片連接,并行傳輸數(shù)據(jù)速度快,硬件成本較高。
第2種方案硬件電路相對(duì)簡(jiǎn)單,不需要增加額外的接口轉(zhuǎn)換硬件,串行接口是在固件中實(shí)現(xiàn)的。IO口方面,只需占用Neuron芯片的IO8和IO10 2個(gè)串行接口。
之前的LON-RS232的網(wǎng)關(guān)開發(fā)以第1種為主,因?yàn)楫?dāng)時(shí)芯片Neuron3150串行速度慢,10MHz晶振下,波特率最高只能達(dá)到4800b/s,所以雖然第2種方案硬件成本低,但是沒有得到很好的應(yīng)用。新一代芯片F(xiàn)T5000的串口波特率最高支持115.2kb/s,目前看來,第2種方案更具有優(yōu)勢(shì)。
方案2網(wǎng)關(guān)的硬件框圖如圖3所示,主要由FT5000芯片及外圍電路組成。FT5000需要10MHz的外部晶振提供輸入時(shí)鐘,內(nèi)存結(jié)構(gòu)和之前的Neuron芯片不同,芯片內(nèi)嵌入16KB的ROM和64KB的RAM,沒有供開發(fā)使用的片上非易失的存儲(chǔ)器 (EEPROM或者flash)。FT5000可以使用SPI總線或者I2C總線擴(kuò)展外部EEPROM/flash,支持最大64KB的存儲(chǔ)空間,其中用戶最大可用容量為42KB。也可以同時(shí)使用2種總線分別擴(kuò)展EEPROM和flash,對(duì)于LON-RS232網(wǎng)關(guān),使用I2C總線外擴(kuò)單片EEPROM就可以滿足開發(fā)要求。
圖3 網(wǎng)關(guān)方案2原理圖
FT5000芯片內(nèi)嵌了高性能的Neuron核收發(fā)器,和FT-X3通信變壓器配合使用即可以和Lon-Works網(wǎng)絡(luò)通信。LON-RS232網(wǎng)關(guān)電路所占面積較少,可以和其他電路做到1塊PCB板上,這樣FT5000的串口管腳IO8、IO10可以和其他微處理器的串口直接相連。也可以做成單獨(dú)的網(wǎng)關(guān)產(chǎn)品,將串口經(jīng)過MAX232驅(qū)動(dòng)后,符合RS-232的電平標(biāo)準(zhǔn),就可以和計(jì)算機(jī)進(jìn)行通信了。FT5000的最高串口速率為115.2kb/s,大于LonWorks網(wǎng)絡(luò)上的速率78kb/s,數(shù)據(jù)流水線傳輸時(shí),可以確保LonWorks網(wǎng)絡(luò)以78kb/s的速率進(jìn)行傳輸。
網(wǎng)關(guān)軟件程序使用Neuron C語言完成。Neuron C不使用main()函數(shù)結(jié)構(gòu),而是由一系列的when()語句組成。調(diào)度程序以循環(huán)的方式檢測(cè),以隊(duì)列形式登錄when語句,為真則執(zhí)行,為假則跳過。利用Neuron C的消息傳送機(jī)制,將收到的串口信息解析后用網(wǎng)絡(luò)報(bào)文傳送到LonWorks網(wǎng)絡(luò)上。同樣的,將通過LonWorks網(wǎng)絡(luò)收到的網(wǎng)絡(luò)報(bào)文解析后發(fā)送至串口,完成LON-RS232的網(wǎng)關(guān)轉(zhuǎn)換功能。
網(wǎng)關(guān)除了完成LON-RS232協(xié)議轉(zhuǎn)換外,還要根據(jù)數(shù)據(jù)幀協(xié)議進(jìn)行可靠傳輸。如表1所示,協(xié)議首先要進(jìn)行幀頭校驗(yàn),校驗(yàn)正確后,按照數(shù)據(jù)長(zhǎng)度進(jìn)行數(shù)據(jù)接收,接收完畢后,需要對(duì)收到的數(shù)據(jù)進(jìn)行校驗(yàn)。如果正確,則接收;如果錯(cuò)誤,則要求重新發(fā)送。FT5000支持最長(zhǎng)255個(gè)字節(jié)的數(shù)據(jù)幀。
下面,給出了軟件設(shè)計(jì)中需要關(guān)注的一些重點(diǎn)語句。
IO_8sci baud (SCI_115200)iosci;//將IO8和IO10設(shè)置成串口,波特率115.2kb/s
when (reset)//設(shè)置上電初始化
when (io_in_ready (iosci))//串口數(shù)據(jù)接收完畢
when (msg_arrives)//LON 網(wǎng)絡(luò)上有消息傳來
msg_send();//將數(shù)據(jù)發(fā)送到LON網(wǎng)絡(luò)上
io_out_request(iosci)//發(fā)送串口數(shù)據(jù)
FT5000芯片需要完成LON-RS232數(shù)據(jù)的雙向轉(zhuǎn)換處理,網(wǎng)關(guān)的軟件流程如圖4所示。
在鐵路道岔監(jiān)測(cè)系統(tǒng)中,利用道岔區(qū)域既有的一對(duì)雙絞線,組成LonWorks網(wǎng)絡(luò)。上行線和下行線的監(jiān)測(cè)分機(jī)分別利用嵌入式LON-RS232網(wǎng)關(guān)和LonWorks總線連接,上行線LON網(wǎng)和下行線LON網(wǎng)中間通過機(jī)械室內(nèi)的網(wǎng)絡(luò)路由器橋接,將LonWorks總線上的數(shù)據(jù)轉(zhuǎn)換成以太網(wǎng)協(xié)議數(shù)據(jù),通過網(wǎng)線傳輸?shù)街行姆?wù)器供分析記錄使用。通過道岔監(jiān)測(cè)系統(tǒng)的現(xiàn)場(chǎng)檢驗(yàn),很好的驗(yàn)證了該網(wǎng)關(guān)的實(shí)用性。
圖4 軟件流程圖
文中系統(tǒng)地論述了嵌入式LonWorks網(wǎng)關(guān)的實(shí)現(xiàn)方法,主要分析了嵌入式網(wǎng)關(guān)的硬件和軟件的實(shí)現(xiàn)方法。本文設(shè)計(jì)的LON-RS232網(wǎng)關(guān),為串口設(shè)備和LonWorks網(wǎng)絡(luò)之間的直接通信提供了一種有效的方法,為今后LonWorks網(wǎng)絡(luò)的開發(fā)提供了一種新的方法。網(wǎng)關(guān)硬件成本低,具有結(jié)構(gòu)簡(jiǎn)單、小型化、模塊化等特點(diǎn),非常適合于工程現(xiàn)場(chǎng)使用。
[1] 楊玉紅.LON網(wǎng)絡(luò)控制技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1999.
[2] 胡秋林 .基于LonWorks現(xiàn)場(chǎng)總線的工業(yè)控制網(wǎng)關(guān)研究[D].南京理工大學(xué)碩士論文2005.
[3] Echelon Corporation.Series 5000Chip Data Book 2009.
[4] Echelon Corporation.Neuron?C Programmer’s Guide 2009.
[5] 曾夢(mèng)秋 .嵌入式LonWorks網(wǎng)絡(luò)智能網(wǎng)關(guān)設(shè)計(jì)[J]電子設(shè)計(jì)工程,2014(9).