湯莉莉 王紅心 張卓 王泉濤 劉進
摘 要:隨著物聯(lián)網(wǎng)技術的快速發(fā)展,它逐漸被應用于各行各業(yè),甚至人們的生活中。本設計是把物聯(lián)網(wǎng)技術應用于實驗儀器智能化管理上,以移植了嵌入式Linux系統(tǒng)的主板為管理平臺;向下通過RS232、485、USB、WLAN等接口,連接到各種電子實驗儀器,根據(jù)儀器廠家提供的通信協(xié)議與儀器通信,操作和控制儀器;向上由局域網(wǎng)或無線傳輸模塊,根據(jù)定義的通信協(xié)議,與PC客戶端交互,實施授權管理和狀態(tài)檢測。該設計提出了一種新的思路,或為今后實驗室儀器智能化管理提供一定的參考價值。
關鍵詞:嵌入式 ARM Linux操作系統(tǒng) 數(shù)據(jù)結構 Linux網(wǎng)絡編程 串口通信
中圖分類號:TP399;TN91 文獻標識碼:A 文章編號:1674-098X(2015)12(c)-0018-02
“物聯(lián)網(wǎng)概念”是在“互聯(lián)網(wǎng)概念”的基礎上,將其用戶端延伸和擴展到任何物品與物品之間,進行信息交換和通信的一種網(wǎng)絡概念。物聯(lián)網(wǎng)技術現(xiàn)已廣泛應用于醫(yī)療、交通、工業(yè)、農(nóng)業(yè)、環(huán)保等各行各業(yè),并廣泛惠及民生。
目前本科階段學生實踐能力的培養(yǎng)主要是在院校實驗室內(nèi)進行,各院校為緊跟社會需求,在學生實踐能力的培養(yǎng)上花費了大量人力和物力,采購了大量的實驗器材,但往往器材采購后,由于人力有限,加上不能對設備直接進行實時管理,資源利用率并不高,只有為數(shù)不多的實驗室對部分學生開放,而且需要配備相當?shù)娜肆?。通過引入最新的物聯(lián)網(wǎng)技術,構建一個實驗儀器智能管理平臺系統(tǒng),通過這個平臺,可以實時的監(jiān)控到儀器的使用狀況,可以根據(jù)這些數(shù)據(jù),合理的調(diào)配實驗室資源、及時報告存在故障的儀器、認定儀器損壞的責任,最終達到減少人力投入和提高使用效率的目的。
1 硬件設計要求與方案選擇
該設計主要的硬件選擇就取決于采用何種芯片的開發(fā)板平臺,選擇的要求如下:
(1)能夠移植Linux系統(tǒng)。
(2)NANDflash不小于2 G。
(3)外設接口,如USB、RS232、485、CAN、WLAN等接口要盡可能的多。其他不必要的接口,如LCD、LVDS、TFT、HDMI等顯示接口要盡可靠裁剪,避免浪費資源。
(4)易于開發(fā),選用的開發(fā)板要有可靠的可以開發(fā)手段,如程序開發(fā)工具、仿真調(diào)試手段等。另外,還需要有完備的技術資料。
(5)選用的開發(fā)板平臺,要實用,但價格不能太昂貴。
鑒于以上的要求,首先考慮ARM系列開發(fā)板平臺,雖然最新的Cortex系列應用廣泛,但考慮到開發(fā)難易度,價格因素,該設計選擇了一款以ARM11芯片(三星S3C6410)作為主處理器的嵌入式核心板Tiny6410。
2 嵌入式Linux系統(tǒng)移植
2.1 移植重難點分析
移植的重難點在于需要耐心地去配置新的系統(tǒng)。選取需要的源代碼,編譯成可執(zhí)行文件,使其能啟動所用的主板。u-boot主要配置包括工程配置和代碼移植。工程配置目的是使u-boot能夠支持主板,需要添加所用主板的配置信息到u-boot工程,關鍵要添加主板配置文件、主板目錄文件;代碼移植的目的是為了添加和修改我們所需要的源代碼,使這個通用的u-boot能夠更好地支持我們主板的芯片,能夠啟動它[1-2]。
2.2 移植步驟
首先搭建交叉編譯環(huán)境,交叉工具鏈為arm-linux-gcc-4.5.1。然后再根據(jù)需要配置編譯u-boot、kernel、rootfs文件系統(tǒng),經(jīng)編譯和執(zhí)行生成得到u-boot.bin、zImage、ramdisk.img文件,再通過u-boot下載到FLASH上完成整個燒寫,啟動系統(tǒng)。
3 軟件系統(tǒng)設計
此管理平臺核心為各軟件模塊的設計,以RS232作為數(shù)據(jù)傳輸,網(wǎng)關服務器作為橋梁、PC作為客戶端,實施監(jiān)控與管理。
3.1 USB-RS232驅(qū)動加載
內(nèi)核模塊有動態(tài)與靜態(tài)加載,由于驅(qū)動模塊加載到內(nèi)核會一直用到,不存在卸載,且方便使用、節(jié)省內(nèi)存空間,所以選擇靜態(tài)加載方式[3]。
3.2 網(wǎng)關服務器程序
ARM11開發(fā)板作為主要控制平臺,它的主要功能有兩個,(1)通過不同的接口,與各種儀器進行通訊,獲取我們需要的數(shù)據(jù),并存儲起來;(2)通過TCP/IP協(xié)議與客戶端進行交互,交流信息。
根據(jù)網(wǎng)關服務器要實現(xiàn)的功能,把編寫代碼分為3個模塊[4],各模塊之間的關系如下圖所示,3個模塊文件中串口配置文件和數(shù)據(jù)存數(shù)文件是被主程序調(diào)用的,主程序模塊是現(xiàn)實服務器功能的核心。
如下圖所示,服務器端程序啟動后,在主程序中,先創(chuàng)建鏈表[5-6],為后面存儲數(shù)據(jù)做準備;再初始化串口,創(chuàng)建兩個線程,最后一直向串口中寫數(shù)據(jù);在主程序中創(chuàng)建的線程,一個實現(xiàn)TCP服務,一個監(jiān)測,讀串口數(shù)據(jù)。在TCP服務中,實際是一個用select輪詢實現(xiàn)的并發(fā)的服務器,可以同時接受多個客戶端的請求。
3.3 客戶端(PC端)程序開發(fā)
客戶端程序,相對于網(wǎng)關服務器的程序來說,簡單很多,整個程序的執(zhí)行流程都是單線程,客戶端端程序和TCP服務端的程序很相似,執(zhí)行流程也大致一直。先創(chuàng)建socket套接字;填充socket,主要填寫服務端的IP地址,和連接端口號。綁定bind操作,在客戶端上,可有可無,但在服務端,必須要做,否則客戶端無法連接。接下來就是客戶端connect操作,請求連接服務器,連接成功,進行通信。
4 系統(tǒng)調(diào)試
4.1 Linux系統(tǒng)啟動調(diào)試
(1)方法與步驟:內(nèi)核調(diào)試→文件系統(tǒng)調(diào)試→修改啟動參數(shù),上電自啟動。
(2)結果:經(jīng)調(diào)試,移植到板子上的Linux系統(tǒng)可以正常啟動,能正常掛載根文件系統(tǒng)。啟動中沒有出現(xiàn)kernel panic 和kernel dump的系統(tǒng)錯誤。
4.2 串口模塊調(diào)試
用USB-RS232串口線將示波器和PC相連,裝好驅(qū)動后,打開putty,進行相關設置。經(jīng)調(diào)試,Linux啟動后,用USB-RS232串口線連接示波器,系統(tǒng)能識別。在管理平臺上運行server程序,并打開示波器的電源,終端上就可以打印出來。
4.3 TCP服務模塊調(diào)試
經(jīng)調(diào)試,在Ubuntu上server端可以與client端連接成功。將server程序移植到平臺上,再次運行server端程序,Ubuntu上客戶端依然能連接成功。
4.4 聯(lián)合調(diào)試
管理平臺上Linux系統(tǒng)啟動后,用USB-RS232串口線,將兩個示波器和管理平臺連接,用網(wǎng)線將管理平臺和Ubuntu PC相連接。在Ubuntu上交叉編譯服務端工程文件,得到可執(zhí)行文件server,拷貝到管理平臺上,用命令:./server運行。打開示波器的電源。在Ubuntu上用Gcc編譯客戶端程序,得到可執(zhí)行的文件client;運行程序:./client 192.168.1.127 8888。在終端上打印出和服務端連接成功的信息,按任意鍵,可得到關于示波器的信息,調(diào)試成功。用組合鍵Ctrl+Alt+T另開多個終端,切換到工程目錄下,再運行客戶端,結果和上面一樣,表明多客戶端調(diào)試成功。
5 結語
該實驗儀器管理平臺能夠獲取示波器啟動時的信息和運行狀態(tài),并且存儲起來;位于PC上的客戶端,可以通過TCP服務訪問管理平臺,得到想要的數(shù)據(jù)。另外,其PC客戶端可跨平臺,解決了單平臺Linux的局限性。在局域網(wǎng)的所有PC都能訪問管理平臺,獲取實驗儀器的使用情況,能多個客戶端通信,還可以實時顯示實驗室監(jiān)控畫面。
實現(xiàn)了管理平臺的基本功能,完成了物聯(lián)網(wǎng)嵌入式技術在實驗儀器智能化管理上的應用的實物模型驗證,或為高校實驗儀器智能化管理提出一種新的思路,同時為未來的管理智能化提供一定的參考價值。
參考文獻
[1] 程姚根,苗德行.嵌入式操作系統(tǒng)(Linux篇)[M].北京:人民郵電出版社,2014.
[2] 劉剛,趙劍川.Linux系統(tǒng)移植[M].北京:清華大學出版社,2010.
[3] 宋寶華.Linux設備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2010
[4] 譚浩強.C語言程序設計(第四版)[M].北京:清華大學出版社,2012.
[5] 程杰.大話數(shù)據(jù)結構[M].北京:清華大學出版社,2011.
[6] Robert Mecklenburg.GNU Make項目管理(第三版)[M].北京:人民郵電出版社,2006.