摘要:設(shè)計(jì)了電力線串口服務(wù)器,它具有電力線通信、可配置IP地址和RS-232 UDP協(xié)議轉(zhuǎn)換功能等特點(diǎn)。換言之,不用再投資更新設(shè)備,使用電力線串口服務(wù)器便能將現(xiàn)有終端串口設(shè)備連接上電力線局域網(wǎng)。
關(guān)鍵詞:PLC; TCP/IP; 嵌入式系統(tǒng); μC/OSⅡ; 任務(wù)
中圖法分類號(hào):TN919文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1001-3695(2006)09-0201-02
可以說,當(dāng)今我們已經(jīng)進(jìn)入數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC[2](PostPC)時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、商業(yè)文化藝術(shù)、娛樂業(yè)以及人們?nèi)粘I畹姆椒矫婷妗>W(wǎng)絡(luò)技術(shù)的快速發(fā)展和互聯(lián)網(wǎng)的廣泛應(yīng)用,使各種家電設(shè)備、PDA、儀器儀表以及工業(yè)生產(chǎn)的數(shù)據(jù)采集與控制設(shè)備等正在逐漸向Internet靠攏,以共享互聯(lián)網(wǎng)絡(luò)中龐大的信息資源。嵌入式設(shè)備的網(wǎng)絡(luò)化開發(fā)有著廣闊的前景。
1研究背景
(1)傳統(tǒng)串口通信的不足。
目前國(guó)內(nèi)很多終端設(shè)備還使用傳統(tǒng)串口(如RS232等)通信,這還是沿用國(guó)外十幾年前的技術(shù)路線。由于這類串口沒有完整的協(xié)議規(guī)范,不能很好地判斷報(bào)文的對(duì)錯(cuò),遠(yuǎn)距離傳輸時(shí)可靠性較差,且無法通過IP接入Internet,實(shí)現(xiàn)網(wǎng)上監(jiān)控。由于串口通信存在諸多缺陷,目前在西方發(fā)達(dá)國(guó)家串口通信已逐漸被淘汰。由于我國(guó)的實(shí)際情況,串口設(shè)備不可能一時(shí)被全部淘汰。
(2)電力線通信的快速發(fā)展。
電力線通信(PLC)技術(shù)是將載有信息的高頻信號(hào)加載到電力線上,用電力線進(jìn)行數(shù)據(jù)傳輸,通過專用的電力線調(diào)制解調(diào)器將高頻信號(hào)從電力線上分離出來,傳送到終端設(shè)備。目前,該技術(shù)在局域網(wǎng)接入領(lǐng)域很有競(jìng)爭(zhēng)力[3]。電力線通信技術(shù)的主要優(yōu)勢(shì)是覆蓋面廣、使用方便、不用布線、永久在線、施工費(fèi)用少、安裝周期短等,不需要重新建設(shè)網(wǎng)絡(luò),即只要有電源的地方就可以接入寬帶網(wǎng),其覆蓋范圍僅次于無線網(wǎng)絡(luò)。無論如何,實(shí)現(xiàn)集電信網(wǎng)、電視網(wǎng)、因特網(wǎng)和電力網(wǎng)于一體的四網(wǎng)合一[4]將會(huì)是未來發(fā)展的趨勢(shì)。
綜合上述情況,本文將設(shè)計(jì)一種嵌入式串口服務(wù)器(即電力線串口服務(wù)器),它既具有電力線調(diào)制解調(diào)功能又具有RS232UDP協(xié)議轉(zhuǎn)換功能,只要給它配置IP地址,終端串口設(shè)備便能通過此服務(wù)器實(shí)現(xiàn)電力線通信。如圖1所示,客戶機(jī)可以在電力線局域網(wǎng)內(nèi)訪問和控制終端串口設(shè)備,也可以跨網(wǎng)訪問終端串口設(shè)備(當(dāng)電力線局域網(wǎng)橋接到互聯(lián)網(wǎng)時(shí))。這樣的服務(wù)器目前在市場(chǎng)上尚未出現(xiàn)。
2解決電力線串口服務(wù)器設(shè)計(jì)的技術(shù)難題
設(shè)計(jì)電力線串口服務(wù)器,需要解決以下三個(gè)技術(shù)難題:①傳統(tǒng)嵌入式系統(tǒng)中的微控制器一般都是最簡(jiǎn)單的C51控制器,其運(yùn)行速度和系統(tǒng)資源根本無法運(yùn)行復(fù)雜的TCP/IP協(xié)議。②TCP/IP協(xié)議在實(shí)時(shí)性方面不能滿足嵌入式應(yīng)用的實(shí)時(shí)要求。③電力線載波信號(hào)傳輸存在一些技術(shù)難點(diǎn),譬如如何解決好電力線載波信號(hào)的信號(hào)衰減、電力線阻抗、阻抗調(diào)制、脈沖噪聲以及跨越變壓器等問題。
針對(duì)上述問題,可考慮以下解決思路:①裁剪TCP/IP協(xié)議棧并選用32位的嵌入式CPU。嵌入式系統(tǒng)往往只使用TCP/IP協(xié)議的部分功能,因此可以對(duì)復(fù)雜的TCP/IP棧進(jìn)行裁剪,以節(jié)約MCU的系統(tǒng)資源。此外,選用32位的嵌入式CPU和較大的存儲(chǔ)器,可以滿足運(yùn)行復(fù)雜的TCP/IP網(wǎng)絡(luò)協(xié)議所需要的處理速度和系統(tǒng)資源。②使用嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),實(shí)時(shí)難題將迎刃而解。RTOS能提高系統(tǒng)的可靠性,提高開發(fā)效率,縮短開發(fā)周期,并充分發(fā)揮32位CPU的多任務(wù)潛力。
③電力線載波信號(hào)傳輸技術(shù)難題的解決方案。首先,影響電力線信號(hào)傳輸?shù)闹饕行盘?hào)衰減、電力線阻抗、脈沖噪聲以及等幅振蕩波干擾等因素,一般采用電力線數(shù)字?jǐn)U頻技術(shù)(SST)[5]或正交頻分多路復(fù)用技術(shù)(OFDM)[5]來解決。其次,載波信號(hào)難跨越變壓器的問題已有解決的辦法。對(duì)于低頻調(diào)制信號(hào),可以采用雙向工頻通信方式解決直接跨越變壓器傳輸數(shù)據(jù)的難題;而對(duì)于MHz級(jí)調(diào)制信號(hào),則考慮采用旁路電容、使用額外電纜,或者選擇在變電站建設(shè)信息處理局部中心,處理后的信息接入不同的電話網(wǎng)、互聯(lián)網(wǎng)和電力信息網(wǎng)。
3系統(tǒng)設(shè)計(jì)
本文系統(tǒng)的設(shè)計(jì),將使用基于ARM7系列的32位CPU芯片LPC2210和多任務(wù)實(shí)時(shí)操作系統(tǒng)μC/OSⅡ的硬/軟件平臺(tái)來實(shí)現(xiàn)。
3.1系統(tǒng)電路結(jié)構(gòu)
電路功能模塊如圖2所示,其主要由嵌入式CPU、復(fù)位電路、系統(tǒng)時(shí)鐘電路、RS232轉(zhuǎn)換電路、片外存儲(chǔ)器電路、電力線調(diào)制解調(diào)電路等組成。系統(tǒng)用到的5V,3.3V,1.8V電源,均從電力線獲得。
3.2系統(tǒng)程序設(shè)計(jì)
3.2.1μC/OSⅡ的幾個(gè)基本概念[6]
(1)任務(wù)。一個(gè)任務(wù)也就是一個(gè)線程,即一個(gè)程序,該程序可以認(rèn)為CPU完全只屬于它自己。每個(gè)任務(wù)均是整個(gè)應(yīng)用的一部分,被賦予一定的優(yōu)先級(jí),并有自己的一套CPU寄存器和任務(wù)棧空間。
(2)信號(hào)量。它是一種約定機(jī)制,用于控制共享資源的使用權(quán)或標(biāo)志某事件的發(fā)生或使兩個(gè)任務(wù)的行為同步。信號(hào)量像一把鑰匙,任務(wù)要運(yùn)行下去,需先拿到這把鑰匙。
(3)消息郵箱。即用一個(gè)指針型變量、一個(gè)任務(wù)或一個(gè)中斷服務(wù)子程序,通過內(nèi)核服務(wù)可以將一則消息放到郵箱里去;同樣,一個(gè)或多個(gè)任務(wù)通過內(nèi)核服務(wù)可以接收這則消息。
3.2.2程序設(shè)計(jì)
系統(tǒng)由四個(gè)任務(wù)模塊構(gòu)成,按優(yōu)先級(jí)先后順序分別是Task_Hardware_Rec,Task_UdpLayerProc,Task_SocketUdp和Task_Uart0。多個(gè)應(yīng)用任務(wù)啟動(dòng)后,系統(tǒng)的工作流程如圖3所示。當(dāng)網(wǎng)絡(luò)有數(shù)據(jù)時(shí),如果判斷為UDP包并且端口正確,則拆包并寫入U(xiǎn)ART0(LPC2210的通用異步收發(fā)器0組件),并由串口發(fā)出,若端口號(hào)錯(cuò)誤則放棄;如果判斷為ARP包(或ICMP包),則按ARP協(xié)議(或ICMP協(xié)議)處理之后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)。當(dāng)串口有數(shù)據(jù)時(shí),則從UART0讀出來,按UDP協(xié)議打包并發(fā)給網(wǎng)絡(luò)。
4實(shí)驗(yàn)及結(jié)論
硬、軟件測(cè)試通過后,可以按圖4所示的連接關(guān)系對(duì)系統(tǒng)進(jìn)行環(huán)境實(shí)驗(yàn)。用一臺(tái)計(jì)算機(jī)作為終端串口設(shè)備,運(yùn)行在這臺(tái)計(jì)算機(jī)中的串口收/發(fā)軟件簡(jiǎn)單地模擬終端串口設(shè)備的功能;而另一臺(tái)計(jì)算機(jī)用作客戶機(jī),在客戶機(jī)中運(yùn)行UDP收/發(fā)演示軟件。
從圖5可見,由終端串口設(shè)備的串口收/發(fā)演示軟件發(fā)送“HelloWorld!”字符串,可以在客戶機(jī)端收到完全相同的數(shù)據(jù)。反之,由客戶機(jī)UDP收/發(fā)演示軟件發(fā)送“123456789abcdefg”字符串時(shí),在終端串口設(shè)備端也能收到相同的數(shù)據(jù)。
通過多次重復(fù)實(shí)驗(yàn),結(jié)果證明:電力線串口服務(wù)器有效地實(shí)現(xiàn)了所需的功能,能雙向通信,協(xié)議轉(zhuǎn)換正確,數(shù)據(jù)傳輸完好。可以說,本文的設(shè)計(jì)基本上達(dá)到了預(yù)期目標(biāo)。
圖5演示實(shí)驗(yàn)軟件界面
參考文獻(xiàn):
[1]LertomTechnologyInc.PLC技術(shù)簡(jiǎn)介[EB/OL].http://www.lertom.com,20021031.
[2]GlenMann,F(xiàn)AEemWareInc.UsingLinuxtoImplement8bitand16bitDeviceNetworkingSolutions[EB/OL].200407.
[3]孫建軍,吳太虎.電力線通信(PLC)技術(shù)的發(fā)展[J].自動(dòng)化與儀器儀表,2003,(5):13.
[4]馬慧麟.電力線通信技術(shù)分析及應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2003,(4):4244.
[5]LertomTechnologyInc.PLC數(shù)據(jù)信號(hào)傳輸技術(shù)[EB/OL].http://www.lertom.com,200403.
[6][美]JeanJLabrosse.μC/OSⅡtheRealtimeKernal[M].邵貝貝,等.北京:航空航天出版社,2003.3660.
[7]王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)(第2版)[M].北京:清華大學(xué)出版社,2003.8992,171183.
作者簡(jiǎn)介:
吳小平(1975),男,貴州黃平人,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)多媒體技術(shù)應(yīng)用;
高平山,男,安徽人,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)多媒體技術(shù)應(yīng)用;
劉士忠,男,內(nèi)蒙古人,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)教育。