本設計采用了Altera公司開發的第二代低成本的FPGA芯片,在其之上開發了基于BCM04的NIOSⅡ藍牙通信模塊。該通信模塊能夠代替電纜,有效的應用于工作環境復雜多變的工業現場,可實現與現場設備、接入點、手操器等設備的無線通信 引言 在工業現場中,大多的通信設備是通過加裝通信模塊來實現的,而大多的通信模塊的處理器采用ARM核。隨著微電子學和計算機科學的迅速發展,電子系統已經從電路板級系統集成發展成為包括ASIC、FPGA和嵌入式系統的多種模式。SOPC由于集成了硬核或軟核CPU、DSP、存儲器、外圍I/O及可編程邏輯模塊,在設計和應有的靈活性及其成本方面有較大的優勢。 NIOSⅡ系列處理器是Altera公司的第二代FPGA嵌入式處理器。同前一代軟核的CPU相比,NIOSⅡ的性能得到很大提高,體積更小,其最大處理能力是第一代軟核的三倍。邏輯功能方面具有32位的精簡指令集CPU。實現方式是在FPGA上通過編程的方式實現,這是與傳統的CPU的一個根本的差別。本文是在NIOSⅡ軟核的基礎上設計了藍牙通信模塊,并在工業以太網中,較好地實現了通信模塊與工業現場設備的無線通信。 NIOSⅡ嵌入式處理器概述 NIOSⅡ處理器是Altera公司的第二代用戶可配置的通用32位RSIC軟核微處理器,是Altera公司特有的基于通用FPGA架構的軟CPU內核。它可以提供:完全的32位指令集、數據總線和地址空間;32位通用的目的寄存器;32個外部中斷源;計算64位和128位乘積專用指令;單指令桶形移位器;對多種片上外設進行訪問,提供片外存儲器和外設接口;在IDE控制下,硬件輔助調試模塊可對處理器進行啟動、停止、單步和追蹤操作;基于CNU C/C++工具鏈和Eclipse IDE;所有的NIOSⅡ處理器系統的指令集兼容;具有超過150DMIPS的性能。 它將設計輸入、綜合、布局、驗證、編程與配置以及第三方EDA工具接口集成在一個無縫的綜合性設計環境中。NIOSⅡ的硬件開發環境是在SOPC builder中進行的。SOPC builder是一個自動化的SOPC硬件系統的開發工具,集成在QuartusⅡ軟件內,Quartus Ⅱ和SOPC builder一起為建立SOPC設計提供標準化的圖形環境。Quartus Ⅱ和SOPCbuilder軟件,可以在很短的時間內定義一個完整的硬件系統。SOPC builder通過SOPC開發階段的系統定義、集成和驗證的自動化,縮短了產品的市場化時間。 NIOSⅡ軟件開發環境被稱為NIOSⅡ集成開發環境(Integrated DevelopmentEnvironment,IDE)。它內嵌在QuartusⅡ設計工具中,可通過JTAG將應用程序下載到SOPC硬件系統中進行調試,可在指令集仿真器中對應用程序進行仿真調試,也可在ModelSim軟件中進行仿真調試。基于NIOSⅡ的SOPC的軟硬開發環境及設計流程如圖1所示。 圖1 基于NIOSⅡ的SOPC軟硬件開發環境及流程 首先利用SOPC Builder的界面定制系統,產生輸出文件;然后進入傳統的FPGA硬件開發流程;在Quartus Ⅱ中進行邏輯綜合、布局布線。在軟件流程中,用戶利用NIOSⅡ IDE環境,建立工程、編譯設計、調試等。 藍牙通信模塊的硬件設計 藍牙技術是一個開放性的、短距離無線通信技術標準,工作在全球通用的2.4GHzISM頻段,采用跳頻擴頻技術,可以用于近距離通過無線連接的方式實現固定設備以及移動設備之間的網絡互連,在各種數字設備之間實現靈活、安全、低成本、小功耗的數據和語音通信,實現全方位的數據傳輸。 工業現場中存在多種使用不同方法進行互連的設備。對有些環境比較惡劣,布線不方便等因素可以采用藍牙無線通信技術來實現數據的通信。本設計中,采用了基于NIOSⅡ軟核的FPGA芯片EP1C12Q240C8作為CPU處理器,并在處理器的外圍拓展了64Mb的SDRAM和16Mb的Flash,配置了50MHz的時鐘、復位電路、下載口,接入藍牙模塊,以便在藍牙通信模塊中實現通信協議并通過藍牙模塊發送測試數據或接收控制命令等。圖2為基于NIOSⅡ軟核的藍牙通信模塊的硬件設計框圖。 圖2 基于NIOSⅡ軟核的藍牙通信模塊的硬件設計框圖 在通信模塊上使用了AM29LV160的Flash和HY57V461620的SDRAM。將CPU的存儲容量進行了拓展,以便保證在EPA網絡上的通信協議的移植和操作系統(Linux、WindowsCE)的移植。復位電路是由10kΩ電阻、10μF電容和按鍵組成的,可實現按鍵低電平復位和上電低電平復位。 藍牙模塊的實現采用了CSR公司的單芯片BCM04。BCM04內嵌BlueCore04芯片,并提供SPI、UART/USB、PIO、PCM接口。BCM04中自帶8Mb的閃存SST39VF800,工作電壓為2.7~3.6V。在天線和發射機輸出端之間接入平衡-不平衡轉換器。帶通濾波器一般是無源器件,它的作用是濾除接收機不需要的頻帶內的信號,為低噪聲放大器(LNA)提供選擇性信號起到減小干擾的作用。BCM04中采用了臺灣ACX公司的集成帶通濾波器+平衡不平衡轉換器的器件FB2520,帶通濾波器和平衡-不平衡轉換器集成在一起集成度更高有效的減小了電路板的面積,該器件具有外型小巧,插入損耗低等優點,能夠很好地完成平衡到不平衡端的轉換和帶通濾波的功能。BCM04中需要3.3V和 1.5V兩種電壓,其中1.5V是為藍牙芯片和帶通濾波器+平衡-不平衡轉換器供電,3.3V為Flash芯片和藍牙芯片的外圍I/O腳提供電壓。CPU與藍牙模塊接口電路圖如圖3所示。 圖3 CPU與藍牙接口的電路圖 基于NIOSⅡ軟核的FPGA芯片的SOPC設計 NIOSⅡ嵌入式處理器是FPGA生產廠商Altera公司推出的軟核CPU,是一種面向用戶的、可以靈活定制的通用RISC(精簡指令集架構)嵌入式CPU。NIOSⅡ以軟核方式提供給用戶,并專為Altera的FPGA上實現做了優化,用于SOPC集成,最后在FPGA上實現。為完成設計要求,需要對處理器芯片進行配置。其SOPC Builder上的配置如圖4所示。 圖4 藍牙通信模塊的SOPC Builder上的配置圖 SOPC設計包括以32位NIOS Ⅱ軟核處理器為核心的嵌入式硬件配置、硬件設計、硬件仿真、軟件設計和軟件調試等。在SOPC Builder中定義了CPU、存儲器接口(FLASH和SDRAM)、標準外圍接口(藍牙接口)、三態橋、硬軟件程序下載口和定時器。 軟件設計 藍牙通信模塊的軟件設計主要集中在NIOSⅡ軟核的驅動開發和藍牙協議的轉換上。Altera公司提供了包括硬件抽象層中字符模式器件、定時器件、文件子系統、以太網器件、DMA器件和Flash器件,并為每個器件提供一系列統一的初始化函數和訪問函數接口。通過對這些接口的讀寫,可完成NIOS Ⅱ軟核的驅動開發的開發。 首先初始化藍牙模塊。藍牙模塊加載了各種協議層后并不能工作,還需要根據不同的硬件設計對模塊初始參數進行設置。初始參數設置又稱為PSK設置,可以通過BlueLAB集成開發環境或者PS Key設置軟件來實現,圖5所示為PS Key設置界面。 圖5 PS Key設置界面 藍牙協議棧已固化在藍牙芯片中,所以在初始化藍牙模塊后,就可通過藍牙模塊對工業現場的其他無線設備進行讀寫,更新藍牙指令。以下程序是實現藍牙串口驅動的所有函數指針。 typedef struct _HW_VTBL{ PVOID(*HWInit)(ULONG Identifier,PVOID pMDDCon-text,PHWOBJ pHWObj); BOOL(*HWIoct1)(PVOID pHead,DWORD dwCode, PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD DwLenOut,PDWORDpdwActualOut); } HW_VTBL,*PHW_VTBL; //定義了藍牙仿真串口DDSI函數的名稱。 Const HW_VTBL BluetoothVTbl={ BluetoothInitSerial, BluetoothIoctl }; //用結構變量CTRLVTbl定義了控制端口的DDSI函數名列表 Const HW_VTBL CTRLVTbl={ CTRLInitSerial, CTRLDeinit, CTRLOpen, CTRLClose, CTRLIoctl }; 小結 藍牙技術是一種無線數據與語音通信的開放性全球規范,它以低成本的近距離無線連接為基礎,為固定與移動通信設備的通信環境建立了一個特別連接的短程無線技術。藍牙技術具有低消費、低功耗、安全性高等特點。本設計在藍牙技術的基礎上,結合了嵌入NIOSⅡ軟核的CPU,采用SOPC技術,可裁減、可擴充、可升級,并具備軟硬件在系統中可編程的功能。FPGA芯片在藍牙通信模塊上的使用,使得通信模塊在可根據工業現場實際需要更改CPU的配置成為可能,方便日后系統的軟硬升級,延長了通信模塊的使用壽命,為應付工業現場多變的環境提供了保證。 |