基于SOPC技術(shù)的EPA藍(lán)牙接入點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)
圖3 系統(tǒng)部件及結(jié)構(gòu)框圖
本文引用地址:http://butianyuan.cn/article/201609/304265.htm3.2 軟件系統(tǒng)設(shè)計(jì)
圖4為EPA藍(lán)牙接入點(diǎn)上的軟件結(jié)構(gòu)框圖,該結(jié)構(gòu)框圖中的協(xié)議棧部分參照《用于工業(yè)測(cè)量與控制系統(tǒng)的EPA系統(tǒng)結(jié)構(gòu)與通信規(guī)范》進(jìn)行設(shè)計(jì),并在接入點(diǎn)中實(shí)現(xiàn)。由于在嵌入式系統(tǒng)中資源有限很難開發(fā)完整的EPA協(xié)議棧,所以本接入點(diǎn)中對(duì)EPA通信協(xié)議棧做了裁剪。如圖4所示,基于SOPC的系統(tǒng)設(shè)計(jì)主要分為3層,最底層構(gòu)成整個(gè)系統(tǒng)的硬件平臺(tái),提供軟件的運(yùn)行平臺(tái)及通訊接口。第2層是操作系統(tǒng)UC/OS II,該操作系統(tǒng)是一個(gè)基于搶占式的實(shí)時(shí)多任務(wù)內(nèi)核,可固化、可裁減,具有高穩(wěn)定性和可靠性[3]。這一層提供任務(wù)調(diào)度以及接口驅(qū)動(dòng),同時(shí)通過(guò)硬件中斷實(shí)現(xiàn)系統(tǒng)對(duì)外界的通信請(qǐng)求實(shí)時(shí)響應(yīng)最上層算法的實(shí)現(xiàn)。第3層為應(yīng)用程序?qū)樱搶迂?fù)責(zé)加載EPA協(xié)議棧。
圖4 EPA藍(lán)牙接入點(diǎn)軟件結(jié)構(gòu)框圖
3.2.1 NIOS II驅(qū)動(dòng)開發(fā)
此部分工作主要是針對(duì)本系統(tǒng)的特定硬件進(jìn)行移植并編寫所需的各種驅(qū)動(dòng)。HAL即硬件抽象層,是NIOS II開發(fā)套件的一部分,由Altera公司提供,它封裝了系統(tǒng)中硬件操作的相關(guān)細(xì)節(jié),驅(qū)動(dòng)程序也作為它的一部分。HAL共抽象了六種器件模型,包括字符模式器件、定時(shí)器件、文件子系統(tǒng)、以太網(wǎng)器件、DMA器件和Flash器件,并為每個(gè)器件提供一系列的統(tǒng)一的初始化函數(shù)和訪問(wèn)函數(shù)接口,通過(guò)這種方式,HAL向上一層提供了一個(gè)類POSIX的API接口,即硬件抽象層應(yīng)用界面。針對(duì)NIOS II的軟件開發(fā),其實(shí)是建立在HAL之上,而非直接面向NIOS II硬件本身。
3.2.2 藍(lán)牙協(xié)議和EPA協(xié)議的轉(zhuǎn)換
EPA協(xié)議棧加載在UC/OS II操作系統(tǒng)之上,其物理層和數(shù)據(jù)鏈路層通過(guò)LAN91C111網(wǎng)絡(luò)控制芯片完成,而網(wǎng)絡(luò)層和數(shù)據(jù)傳輸層由LWIP協(xié)議棧完成(LWIP協(xié)議棧實(shí)現(xiàn)了IP、ARP、UDP、ICMP等協(xié)議),然后在LWIP協(xié)議棧之上加載了EPA應(yīng)用層,在EPA應(yīng)用層上實(shí)現(xiàn)了EPA套接字映射實(shí)體、EPA系統(tǒng)管理實(shí)體、EPA應(yīng)用訪問(wèn)實(shí)體、EPA管理信息庫(kù)。
當(dāng)EPA接入點(diǎn)啟動(dòng)后,首先需要初始化相關(guān)硬件設(shè)備驅(qū)動(dòng),包括UART串口驅(qū)動(dòng),設(shè)置與藍(lán)牙模塊的通信的波特率值38400bps,初始化串口接收和發(fā)送緩沖區(qū),向藍(lán)牙模塊寫入初始化的HCI指令[4];其次是網(wǎng)絡(luò)接口驅(qū)動(dòng),寫入LAN91C111的相關(guān)寄存器值,初始化網(wǎng)口接收和發(fā)送緩沖區(qū),并且通過(guò)lwip協(xié)議棧中提供的sys_thread_new()函數(shù)創(chuàng)建以太網(wǎng)接收和發(fā)送報(bào)文進(jìn)程。當(dāng)藍(lán)牙模塊接收到無(wú)線數(shù)據(jù)時(shí),由藍(lán)牙模塊解析出該報(bào)文,并把該報(bào)文存放在串口接收緩沖區(qū)中,然后調(diào)用EPA應(yīng)用層的處理函數(shù),判斷該報(bào)文是屬于設(shè)備聲明報(bào)文還是數(shù)據(jù)分發(fā)報(bào)文,并且將該報(bào)文封裝成EPA報(bào)文從以太網(wǎng)接口發(fā)送出去。
4、測(cè)試系統(tǒng)
EPA藍(lán)牙接入點(diǎn)能夠同時(shí)接入7個(gè)現(xiàn)場(chǎng)藍(lán)牙設(shè)備所采集到的數(shù)據(jù)[5],而在我們的測(cè)試系統(tǒng)中只接入了一個(gè)藍(lán)牙現(xiàn)場(chǎng)設(shè)備即圖5中第一行所顯示的EPA藍(lán)牙閥門定位器,EPA藍(lán)牙閥門定位器每隔0.5秒將采集到的閥門值通過(guò)藍(lán)牙報(bào)文傳送給EPA藍(lán)牙接入點(diǎn),然后經(jīng)由藍(lán)牙接入點(diǎn)進(jìn)行報(bào)文格式轉(zhuǎn)換后,以EPA報(bào)文格式發(fā)送給負(fù)責(zé)監(jiān)控的上位機(jī)。從圖中可以看到閥門定位器的當(dāng)前值,測(cè)試表明該接入點(diǎn)運(yùn)行良好,能夠很好的完成網(wǎng)段互聯(lián)功能。
圖5 上位機(jī)通過(guò)EPA藍(lán)牙接入點(diǎn)監(jiān)測(cè)EPA閥門定位器(藍(lán)牙)的實(shí)時(shí)數(shù)據(jù)
5、結(jié)論
本文設(shè)計(jì)的基于NIOS II軟核EPA藍(lán)牙接入點(diǎn)目前已經(jīng)完成了初步的調(diào)試和測(cè)試工作,測(cè)試表明該接入點(diǎn)運(yùn)行穩(wěn)定,能夠完成正常的無(wú)線通信及以太網(wǎng)通信功能。相比于以往的開發(fā)方案采用SOPC技術(shù)縮短了開發(fā)周期節(jié)約了硬件資源,并且為以后的系統(tǒng)的軟硬件升級(jí)提供了很大的空間。
評(píng)論