基于SOPC技術的EPA藍牙接入點的設計與實現

圖3 系統部件及結構框圖
本文引用地址:http://www.j9360.com/article/201609/304265.htm3.2 軟件系統設計
圖4為EPA藍牙接入點上的軟件結構框圖,該結構框圖中的協議棧部分參照《用于工業測量與控制系統的EPA系統結構與通信規范》進行設計,并在接入點中實現。由于在嵌入式系統中資源有限很難開發完整的EPA協議棧,所以本接入點中對EPA通信協議棧做了裁剪。如圖4所示,基于SOPC的系統設計主要分為3層,最底層構成整個系統的硬件平臺,提供軟件的運行平臺及通訊接口。第2層是操作系統UC/OS II,該操作系統是一個基于搶占式的實時多任務內核,可固化、可裁減,具有高穩定性和可靠性[3]。這一層提供任務調度以及接口驅動,同時通過硬件中斷實現系統對外界的通信請求實時響應最上層算法的實現。第3層為應用程序層,該層負責加載EPA協議棧。

圖4 EPA藍牙接入點軟件結構框圖
3.2.1 NIOS II驅動開發
此部分工作主要是針對本系統的特定硬件進行移植并編寫所需的各種驅動。HAL即硬件抽象層,是NIOS II開發套件的一部分,由Altera公司提供,它封裝了系統中硬件操作的相關細節,驅動程序也作為它的一部分。HAL共抽象了六種器件模型,包括字符模式器件、定時器件、文件子系統、以太網器件、DMA器件和Flash器件,并為每個器件提供一系列的統一的初始化函數和訪問函數接口,通過這種方式,HAL向上一層提供了一個類POSIX的API接口,即硬件抽象層應用界面。針對NIOS II的軟件開發,其實是建立在HAL之上,而非直接面向NIOS II硬件本身。
3.2.2 藍牙協議和EPA協議的轉換
EPA協議棧加載在UC/OS II操作系統之上,其物理層和數據鏈路層通過LAN91C111網絡控制芯片完成,而網絡層和數據傳輸層由LWIP協議棧完成(LWIP協議棧實現了IP、ARP、UDP、ICMP等協議),然后在LWIP協議棧之上加載了EPA應用層,在EPA應用層上實現了EPA套接字映射實體、EPA系統管理實體、EPA應用訪問實體、EPA管理信息庫。
當EPA接入點啟動后,首先需要初始化相關硬件設備驅動,包括UART串口驅動,設置與藍牙模塊的通信的波特率值38400bps,初始化串口接收和發送緩沖區,向藍牙模塊寫入初始化的HCI指令[4];其次是網絡接口驅動,寫入LAN91C111的相關寄存器值,初始化網口接收和發送緩沖區,并且通過lwip協議棧中提供的sys_thread_new()函數創建以太網接收和發送報文進程。當藍牙模塊接收到無線數據時,由藍牙模塊解析出該報文,并把該報文存放在串口接收緩沖區中,然后調用EPA應用層的處理函數,判斷該報文是屬于設備聲明報文還是數據分發報文,并且將該報文封裝成EPA報文從以太網接口發送出去。
4、測試系統
EPA藍牙接入點能夠同時接入7個現場藍牙設備所采集到的數據[5],而在我們的測試系統中只接入了一個藍牙現場設備即圖5中第一行所顯示的EPA藍牙閥門定位器,EPA藍牙閥門定位器每隔0.5秒將采集到的閥門值通過藍牙報文傳送給EPA藍牙接入點,然后經由藍牙接入點進行報文格式轉換后,以EPA報文格式發送給負責監控的上位機。從圖中可以看到閥門定位器的當前值,測試表明該接入點運行良好,能夠很好的完成網段互聯功能。

圖5 上位機通過EPA藍牙接入點監測EPA閥門定位器(藍牙)的實時數據
5、結論
本文設計的基于NIOS II軟核EPA藍牙接入點目前已經完成了初步的調試和測試工作,測試表明該接入點運行穩定,能夠完成正常的無線通信及以太網通信功能。相比于以往的開發方案采用SOPC技術縮短了開發周期節約了硬件資源,并且為以后的系統的軟硬件升級提供了很大的空間。
評論