《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于SOPC技術(shù)的遠(yuǎn)程測控系統(tǒng)設(shè)計(jì)
基于SOPC技術(shù)的遠(yuǎn)程測控系統(tǒng)設(shè)計(jì)
丁曉貴 江晉劍
摘要: 在高溫、高壓,、強(qiáng)放射性等惡劣環(huán)境下,,由于測量者不能長期置身其中,,使得測控非常困難。在Nios II軟核CPU上移植μ c/OS-II實(shí)時(shí)操作系統(tǒng)和TCP/IP協(xié)議棧,,容易實(shí)現(xiàn)網(wǎng)絡(luò)通信,,為遠(yuǎn)程測控提供了條件。以此為基礎(chǔ)設(shè)計(jì)的嵌入式系統(tǒng)具有結(jié)構(gòu)小巧,、實(shí)時(shí)性強(qiáng),、穩(wěn)定性高等特點(diǎn),在工業(yè)測控領(lǐng)域中應(yīng)用前景廣泛,。
Abstract:
Key words :

 

0 引言
    在高溫,、高壓、強(qiáng)放射性等惡劣環(huán)境下,,由于測量者不能長期置身其中,,使得測控非常困難。在Nios II軟核CPU上移植μ c/OS-II實(shí)時(shí)操作系統(tǒng)和TCP/IP協(xié)議棧,,容易實(shí)現(xiàn)網(wǎng)絡(luò)通信,,為遠(yuǎn)程測控提供了條件。以此為基礎(chǔ)設(shè)計(jì)的嵌入式系統(tǒng)具有結(jié)構(gòu)小巧,、實(shí)時(shí)性強(qiáng),、穩(wěn)定性高等特點(diǎn),,在工業(yè)測控領(lǐng)域中應(yīng)用前景廣泛。

1 遠(yuǎn)程測控系統(tǒng)的硬件架構(gòu)

    遠(yuǎn)程測控系統(tǒng)的硬件架構(gòu)如圖1所示,。從圖中可以看出,,Nios II軟核CPU及各種所需的外設(shè)IP均通過SOPCBui lder集成在一片F(xiàn)PGA中,構(gòu)成本系統(tǒng)所需硬件的可重構(gòu)部分,,實(shí)現(xiàn)真正的可編程片上系統(tǒng)(SOPC),。
1.1 I P核設(shè)計(jì)
    為了在低成本情況下完成預(yù)定功能,選擇了Cyclone FPGA系列器件中的EP1C6,。EP1C6無論從邏輯資源還是存儲(chǔ)器均能滿足設(shè)計(jì)要求,。在本系統(tǒng)中,我們設(shè)計(jì)或選用了如下主要的IP核,。
    1.1.1 UART帶Avalon接口的通用異步接收器/發(fā)送器,。UART內(nèi)核執(zhí)行RS-232協(xié)議,它為FPGA上的嵌入式系統(tǒng)和外部設(shè)備提供了串行字符流的通信方式,。帶Avalon接口的JTAG-UART內(nèi)核還提供Nios CPU系統(tǒng)到PC機(jī)的連接通路,,通過JTAG-UART在PC機(jī)上調(diào)試NiosCPU所需要的程序,并通過監(jiān)控程序?qū)φ麄€(gè)系統(tǒng)的運(yùn)行進(jìn)行控制,。
    1.1.2 GPIO,。并行輸入/輸出內(nèi)核。它提供Avalon從控制器端口到通用I/O口間的映射接口,。該IP核是常規(guī)的外設(shè)控制接口,。通過GPIO,對內(nèi)控制SOPC系統(tǒng)中的其他部分,,對外充當(dāng)并行I/O接口,,讀取開關(guān)量,對LED,、LCD等外設(shè)進(jìn)行控制,。
    1.1.3 SDRAM 該IP核是外部存儲(chǔ)器SDRAM的控制接口。通過它完成SDRAM的時(shí)序控制,。軟件設(shè)計(jì)中,, SDRAM的時(shí)序控制對用戶是完全透明的。
    1.1.4 EPCS,。帶Avalon接口的EPCS設(shè)備控制器內(nèi)核,。該IP核允許Nios II系統(tǒng)訪問EPCS串行配置芯片,該芯片主要用于存儲(chǔ)程序代碼或一些非易失性數(shù)據(jù),。

    1.1.5三態(tài)總線橋,。該IP核是Avalon和Avalon-TriBUS總線以及Avalon和Wishbone總線的橋接控制器,用于連接兩種不同總線,??紤]有些外設(shè)需要自行開發(fā)I2CIP核,,這些外設(shè)不能直接連到Avalon總線上,需要通過橋接控制器,。
1.2 檢測和執(zhí)行模塊
    由于遠(yuǎn)程測控系統(tǒng)設(shè)計(jì)的目的不同,,該模塊選用的IP核也不完全相同。SOPC Builder自帶的IP庫中并不包含I2C配置接口模塊,,該模塊需要根據(jù)配制芯片的寄存器特點(diǎn)和功能進(jìn)行專門設(shè)計(jì),,并以I2C核的形式通過SOPCBuilder連接到系統(tǒng)的Avalon總線上。
1.3 傳輸接口模塊
    本系統(tǒng)有三種數(shù)據(jù)傳輸方式:串口,、USB接口和以太網(wǎng)接口,。串口、USB接口通過UART接Avalon總線,。以太網(wǎng)接口芯片選用了SMSC公司的LAN91c11 1芯片,,該芯片內(nèi)部集成了以太網(wǎng)介質(zhì)訪問(MAC)及物理層收發(fā)器(PHY),支持10/1OOM全雙工傳輸模式,、自動(dòng)協(xié)商等功能,。LAN91C111芯片通過FPGA內(nèi)的適配器模塊連接到EP1C6內(nèi)部的Avalon總線上,從而實(shí)現(xiàn)系統(tǒng)接入Internet,。

2 遠(yuǎn)程測控系統(tǒng)的軟件體系
    本系統(tǒng)有兩大功能:數(shù)據(jù)的遠(yuǎn)程采集及傳送,??紤]到使用互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸?shù)膹?fù)雜性,,在設(shè)計(jì)中使用嵌入式操作系統(tǒng)和TCP/IP協(xié)議棧是必然選擇。
    軟件系統(tǒng)體系結(jié)構(gòu)如圖2所示,。主要包括嵌入式操作系統(tǒng)的移植,;網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn);應(yīng)用級(jí)代碼編寫等部分,。為了方便用戶編程,,Nios II IDE提供了設(shè)備驅(qū)動(dòng)程序,即硬件抽象層(HAL)系統(tǒng)庫,。HAL應(yīng)用程序接口(API)與ANSI C標(biāo)準(zhǔn)庫綜合在一起,,可以使用類似C語言的庫函數(shù)來訪問硬件設(shè)備或文件,如printf(),、fopen()等,,而無須關(guān)心底層硬件的實(shí)現(xiàn)細(xì)節(jié)。

2.1 移植μC/OS-II和LWIP
    μC/OS-II是一種可移植,、可固化,、占先式多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核。其規(guī)模較小,、實(shí)時(shí)性和可靠性較高,,Nios II集成開發(fā)環(huán)境(IDE)對μ C/OS-II具有良好的支持,,故μC/OS-II是嵌入式操作系統(tǒng)的首選。它通過為每個(gè)任務(wù)分配單獨(dú)的任務(wù)堆棧來保存任務(wù)工作環(huán)境,,提供任務(wù)管理和調(diào)度服務(wù),。
    輕量級(jí)網(wǎng)絡(luò)協(xié)議(Lightweight IP,LWIP)是TCP/IP協(xié)議棧的一種實(shí)現(xiàn),,它是一種專門針對嵌入式系統(tǒng)應(yīng)用而設(shè)計(jì)的網(wǎng)絡(luò)通信協(xié)議,,由于LWIP實(shí)現(xiàn)的關(guān)鍵在于削減代碼大小和內(nèi)存消耗,但可以完成傳統(tǒng)的TCP/IP協(xié)議的大部分功能,,通常只需要大約40K的ROM和幾十K的RAM即可運(yùn)行,,在網(wǎng)絡(luò)協(xié)議棧初始化后,使用標(biāo)準(zhǔn)套接字API創(chuàng)建新任務(wù)訪問網(wǎng)絡(luò)協(xié)議棧,。

2.2 通信服務(wù)器
    本任務(wù)通過sys_thread_new()函數(shù)創(chuàng)建,,作為服務(wù)器監(jiān)聽約定的端口,等待遠(yuǎn)程主機(jī)的連接,,提取遠(yuǎn)程主機(jī)的命令,,通過消息隊(duì)列將所獲得的命令發(fā)送到測控任務(wù)。LWIP提供了標(biāo)準(zhǔn)的Berkeley套接字編程界面,,這個(gè)界面提供了三種類型,,這里使用了流式套接字,這是一個(gè)面向連接,、可靠的數(shù)據(jù)傳輸服務(wù),,數(shù)據(jù)無差錯(cuò)、無重復(fù)地發(fā)送,,按發(fā)送順序接收,。通常服務(wù)器接收到并發(fā)服務(wù)請求后,要激活一個(gè)新進(jìn)程來處理這個(gè)客戶請求,。

 


3 遠(yuǎn)程測控系統(tǒng)的實(shí)現(xiàn)
3.1 系統(tǒng)初始化
    系統(tǒng)初始化是指系統(tǒng)上電復(fù)位后到運(yùn)行main()函數(shù)前,,初始化硬件,構(gòu)建應(yīng)用程序運(yùn)行環(huán)境的過程,。如圖3所示,,Nios II的HAL程序庫為用戶提供了這段代碼,代碼的入口標(biāo)號(hào)是"reset",。
    程序先對CPU進(jìn)行初始化,,其功能包括初始化指令和數(shù)據(jù)Cache,設(shè)置堆棧指針(stack Pointer)等,,然后調(diào)用"alt main()"函數(shù),。
    alt main()函數(shù)對CPU及外設(shè)初始化,其功能包括調(diào)用alt os int()函數(shù)初始化OS,,默認(rèn)情況下完成對μC/OS-II初始化,,調(diào)用alt_sys_int()函數(shù)初始化系統(tǒng)設(shè)備及軟件模塊等,,然后調(diào)用"main()"函數(shù)。
3.2 主函數(shù)main()
    主函數(shù)"main()"負(fù)責(zé)進(jìn)行網(wǎng)絡(luò)監(jiān)聽,,響應(yīng)終端的TCP連接請求,。若同時(shí)要求能與多個(gè)終端建立TCP連接和傳輸數(shù)據(jù),需要為每個(gè)終端的網(wǎng)絡(luò)數(shù)據(jù)處理都開辟一個(gè)新的線程,,主函數(shù)的流程如圖4所示,。

    服務(wù)器為每個(gè)客戶端都開一個(gè)線程專門與之進(jìn)行socket通信。Socket數(shù)據(jù)處理線程主要包括三個(gè)方面工作:從套接字上接收數(shù)據(jù)包,;解析并存儲(chǔ)數(shù)據(jù)包,;打包并發(fā)送數(shù)據(jù)包等。

3.3 遠(yuǎn)程測控實(shí)驗(yàn)
    為驗(yàn)證設(shè)計(jì)方案,,選用瑞士SENSIRION公司生產(chǎn)的傳感器SHT75,,測控溫、濕度,,該一體化數(shù)字式傳感器將敏感元件,、信號(hào)放大器、模數(shù)轉(zhuǎn)換器,、數(shù)字接口電路集成在同一芯片上,,使用I2C IP核可以方便地和處理器連接。實(shí)驗(yàn)結(jié)果表明,,該設(shè)計(jì)切實(shí)可行,。

4 結(jié)束語
    本設(shè)計(jì)基于SOPC和嵌入式系統(tǒng)技術(shù),實(shí)現(xiàn)了遠(yuǎn)程測控的要求,。此設(shè)計(jì)可應(yīng)用于各種惡劣環(huán)境,,稍加改進(jìn),,也可適用于網(wǎng)絡(luò)信息家電,、家庭安全等方面。隨著芯片技術(shù)和總線技術(shù)的發(fā)展,,嵌入式遠(yuǎn)程網(wǎng)絡(luò)化測控在工業(yè)中的應(yīng)用定會(huì)更加廣泛,。

 

 

 


 

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。