華南農(nóng)業(yè)大學(xué)電子工程學(xué)院 王 建 吳觀法 曾銳文
在工業(yè)場(chǎng)景中串口傳輸依然是最主要的通信方式,當(dāng)前在無(wú)線通信和物聯(lián)網(wǎng)發(fā)展的影響下,傳統(tǒng)串口數(shù)據(jù)采集方式迎來(lái)了創(chuàng)新的契機(jī),即實(shí)現(xiàn)無(wú)線遠(yuǎn)程串口數(shù)據(jù)傳輸與控制,其中點(diǎn)到點(diǎn)遠(yuǎn)程通信具有重要意義。
LTE(Long Term Evolution,長(zhǎng)期演進(jìn))為解決第三代通信技術(shù)暴露出的問(wèn)題而提出的下一代移動(dòng)通信統(tǒng)一標(biāo)準(zhǔn),目前是第四代通信技術(shù),以其高速、寬帶、低成本為現(xiàn)階段下眾多設(shè)備連接服務(wù)器、傳輸采集的數(shù)據(jù)提供可靠保證,得到廣泛應(yīng)用[1-2]。
基于MT7628片上系統(tǒng)芯片下掛數(shù)據(jù)采集系統(tǒng),通過(guò)串口獲取所需傳感數(shù)據(jù);設(shè)立TCP服務(wù)器,通過(guò)該服務(wù)器中轉(zhuǎn)客戶端獲得的數(shù)據(jù)。采用LTE遠(yuǎn)程控制器,使用LTE網(wǎng)絡(luò)介入Internet,登錄到TCP遠(yuǎn)程服務(wù)器,向遠(yuǎn)程TCP遠(yuǎn)程服務(wù)器發(fā)送從串口收到的數(shù)據(jù),并且接收來(lái)自手機(jī)/電腦客戶端端的控制數(shù)據(jù)。手機(jī)/電腦端的客戶端可以通過(guò)互聯(lián)網(wǎng)接入TCP遠(yuǎn)程服務(wù)器,獲取TCP服務(wù)端轉(zhuǎn)發(fā)來(lái)的來(lái)自MT7628串口控制器的數(shù)據(jù),并向TCP服務(wù)端發(fā)送控制命令,再由TCP服務(wù)器轉(zhuǎn)發(fā)到MT7628串口控制器,再由串口控制器發(fā)送到下掛設(shè)備,系統(tǒng)框圖如圖1所示。
主控芯片采用聯(lián)發(fā)科MTK公司生產(chǎn)的一款以MIPS 24K CPU為核心的SOC芯片MT7628,帶有多個(gè)外設(shè),包括2.4GHz的Wi-Fi網(wǎng)卡,5個(gè)有線網(wǎng)卡,3個(gè)串口,多路GPIO,SD-XC接口,USB接口等[3]。更為關(guān)鍵的是MT7628芯片中帶有MMU內(nèi)存管理模塊,可以運(yùn)行Linux內(nèi)核的系統(tǒng),涉及到Linux引導(dǎo)移植、內(nèi)核移植。
EC20 R2.0 Mini PCIE-C是移遠(yuǎn)通信采用PCI Express Mini Card標(biāo)準(zhǔn)接口的LTE模塊。它采用了LTE第三代合作伙伴計(jì)劃(3rd Generation Partnership Project,3GPP)Rel.11技術(shù),內(nèi)置豐富的網(wǎng)絡(luò)協(xié)議,集成多個(gè)工業(yè)標(biāo)準(zhǔn)接口,需要進(jìn)行LTE4G驅(qū)動(dòng)及撥號(hào)移植。
圖1 系統(tǒng)框圖
包括Linux引導(dǎo)移植、內(nèi)核移植,本文采用的是linux-3.18.29,解壓MediaTek_ApSoC_SDK_4320_20150414.tar.bz2可得到Uboot文件夾。
Linux系統(tǒng)中EC20模塊通過(guò)虛擬USB串口設(shè)備,經(jīng)點(diǎn)對(duì)點(diǎn)協(xié)議隱形程式(Point to Point Protocol Daemon,PPPD)軟件撥號(hào)達(dá)到上網(wǎng)目的,所以移植EC20的驅(qū)動(dòng)就是移植EC20的USB虛擬串口。這種USB虛擬串口的接口是通用的,在Linux-3.18.29的內(nèi)核中已經(jīng)含有USB的虛擬驅(qū)動(dòng)代碼,只需添加EC2設(shè)備信息,即可被Linux系統(tǒng)識(shí)別。移植EC20 PPPD撥號(hào)軟件主要包括:解壓ppp-2.4.7.tar.gz后編譯ppp-2.4.7,將編譯后得到三個(gè)MIPS構(gòu)架運(yùn)行文件pppd、pppdump、pppstats文件分別上傳到目標(biāo)板的/usr/sbin目錄中,然后在目標(biāo)板上制作LTE撥號(hào)腳本wcdma、wcdma-chat-connect、wcdma-chat-disconnect。
本文中TCP服務(wù)端是在擁有公網(wǎng)IP地址的Ubuntu服務(wù)器中工作,采用C語(yǔ)言編程,主要函數(shù)包括:void init(const char * IP,const char *serverport)函數(shù),用于初始化服務(wù)端端口并綁定服務(wù)端端口,建立監(jiān)聽(tīng)端口;void service(void)函數(shù),用于啟動(dòng)TCP服務(wù)端,啟動(dòng)后會(huì)等待來(lái)自MT7628設(shè)備和遠(yuǎn)程控制端的TCP連接;調(diào)用void *service_thread(void *p)函數(shù)會(huì)建立一個(gè)新的線程,該線程和連接的TCP客戶端保持通信。
在本設(shè)計(jì)中,MT7628以TCP客戶端的方式與遠(yuǎn)程服務(wù)器建立連接,連接成功以后,讀取串口,串口開(kāi)始讀取來(lái)自下掛設(shè)備的信息,同時(shí)把來(lái)自TCP服務(wù)端的消息發(fā)往串口。測(cè)試框圖如圖2所示。
圖2 測(cè)試流程圖
圖3 遠(yuǎn)程客戶端間測(cè)試
測(cè)試一:將TCP服務(wù)端運(yùn)行在遠(yuǎn)程Ubuntu服務(wù)器中,采用的域名是廣州元電荷科技公司公網(wǎng)地址www.ivoten.cn,可以直接被互聯(lián)訪問(wèn)。首先通過(guò)scp命令將tcpserver文件上傳至Ubuntu服務(wù)器,在遠(yuǎn)程Ubuntu服務(wù)器上啟動(dòng)tcpserver,在tcpserver啟動(dòng)后,將TCP客戶端A、B的地址同樣設(shè)置為www.ivoten.cn,端口號(hào)為8080。依次啟動(dòng)測(cè)試TCP客戶端A,TCP客戶端B。連接成功以后,進(jìn)行兩個(gè)TCP客戶端的互發(fā)信息,檢測(cè)能否相互進(jìn)行通信。測(cè)試情況如圖3所示。
測(cè)試二:打開(kāi)擁有公網(wǎng)IP遠(yuǎn)程的Ubuntu服務(wù)器,啟動(dòng)tcpserver,端口號(hào)為8080,域名www.ivoten.cn,連接MT7628串口控制器,將MT7628的4G模式打開(kāi),設(shè)置MT7628串口控制器目標(biāo)地址為www.ivoten.cn,端口號(hào)8080,打開(kāi)電腦TCP客戶端,連接到www.ivoten.cn 8080端口。在電腦端打開(kāi)串口助手,向MT7628串口控制器發(fā)送”from RS232 Uart”,電腦的TCP客戶端向TCP服務(wù)器發(fā)送”from TCP CLIENT”。在串口助手收到“”from TCP CLIENT”,TCP客戶端收到“from RS232 Uart”,測(cè)試如圖4所示。
圖4 公網(wǎng)MT7628遠(yuǎn)程控制器接入TCP服務(wù)端測(cè)試
測(cè)試三:把STM 32通過(guò)RS232接入到MT7628串口控制器上,分別測(cè)試電腦的TCP客戶端向服務(wù)器發(fā)送AT命令,STM 32按照串口發(fā)來(lái)的AT指令采集溫濕度,并要求返回溫濕度,當(dāng)串口向STM 32發(fā)送AT+TEMPERATURE=? 時(shí),STM 32回采集DHT11的數(shù)據(jù),得到溫度數(shù)據(jù),返回溫度數(shù)據(jù)到串口,如圖5所示。
圖5 客戶端點(diǎn)到點(diǎn)測(cè)試結(jié)果
本文根據(jù)物聯(lián)網(wǎng)中節(jié)點(diǎn)間數(shù)據(jù)傳輸交換的需求,設(shè)計(jì)了一個(gè)點(diǎn)對(duì)點(diǎn)遠(yuǎn)程數(shù)據(jù)傳輸,設(shè)置中轉(zhuǎn)TCP服務(wù)器,TCP服務(wù)器得到來(lái)自MT7628的TCP客戶端消息,把消息轉(zhuǎn)發(fā)到電腦的TCP客戶端;電腦中TCP客戶端的控制消息發(fā)到TCP服務(wù)端,TCP服務(wù)端把消息轉(zhuǎn)發(fā)到MT7628的TCP客戶端,完成點(diǎn)對(duì)點(diǎn)遠(yuǎn)程數(shù)據(jù)傳輸控制。
[1]曹旭東,薛大歡,何得平.基于TD-LTE的智慧油田測(cè)控系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2016,24(5):117-119,123.
[2]賴華堯,黃鳳辰,花再軍,陳釗.基于3G的地鐵MVB數(shù)據(jù)傳輸?shù)碾p通道設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2017,30(5):6-8.
[3]聯(lián)發(fā)科.發(fā)布芯片MT7628布局智能家庭[J].電視技術(shù),2014,38(20):47.