劉擘,梁哲興
?
基于NI虛擬儀器和nRF9E5單片機的串口通訊
劉擘1,梁哲興2
(1. 海軍駐712所軍代室,武漢 430064;2. 武漢船用電力推進裝置研究所,武漢 430064)
針對多通道、長距離的數據傳輸,本文采用串口通訊方式,基于NI工控機和nRF9E5單片機硬件平臺,并通過試驗驗證。
串口通訊 NI虛擬儀器 nRF9E5單片機
單片機與上位PC機的通訊方式有并行通訊和串行通訊。與并行通信相比,串行通信速度比較慢,不過由于其硬件連接占用硬件資源較少(只需兩根線),信號傳輸距離遠,使得串行通訊應用廣泛。
本項目要求實現對多個檢測通道數據的遠距離傳輸處理,故采用串行通訊。
串口通訊由硬件平臺和軟件平臺兩部分組成。硬件平臺是由NI虛擬儀器和nRF9E5單片機組成,其中NI虛擬儀器作為串口通訊的上位機,nRF9E5單片機作為串口通訊的下位機。
nRF9E5單片機是系統級無線射頻收發芯片,內嵌高性能8051MCU,4通道12位ADC信號采集。內置nRF905收發器,包括所有nRF905芯片特性,可以工作在shockburstTM模式下(自動處理前綴,地址和CRC),最大程度的抑制了噪聲,工作電壓范圍為1.9~3.6 V。
其原理框圖如下圖所示。

所謂虛擬儀器,是以PC機為基礎,配以相應測試功能的硬件作為信號輸入/輸出的接口,完成信號的采集、測量與調理,從而實現各種測試功能的一種計算機化儀器系統。
NI虛擬儀器由通用儀器硬件平臺和應用軟件兩大部分構成,如圖2所示。
通用儀器硬件平臺是虛擬儀器工作的基礎,主要由PC機和信號采集調理裝置組成,用于完成輸入信號的采集、放大、模/數轉換和信號輸出控制等,其中PC機用來提供實時高效的數據處理性能,信號采集調理裝置主要用來采集、傳輸信號,本項目采用性價比高、通用性強的PXI系統,PXI系統主機為NI PXI 1042,數據采集設備選用了一塊PXI 6229多功能數據采集卡,它有32路16 Bit模擬量采集口和48路雙向數字量接口,最大采樣率為240 kS。
應用軟件是虛擬儀器的核心,虛擬儀器可以在相同的硬件平臺下,通過不同的測試功能軟件模塊的組合,實現功能完全不同的各種儀器。目前應用最為廣泛的虛擬儀器軟件開發工具就是美國NI公司推出的實驗室虛擬儀器工程平臺LabVIEW,它是一種基于G語言的32位編譯型圖形化編程語言,它采用模塊化、結構化的設計思想,提高了編程效率,增強了軟件的可維護性和可擴展性。

NI虛擬儀器具備GPIB,串口,以太網,USB等多種接口,可實現各種信號的采集、分析處理和數據傳輸等功能。
nRF9E5單片機內嵌8051系列微控制器,可在Keil C51調試軟件平臺上用C語言編程,編譯完成后通過仿真器將程序下載到單片機ROM中。
NI虛擬儀器軟件采用Labview 8.2版本,進行圖形化程序編輯處理。
由于nRF9E5單片機具有無線收發功能,所以在本項目中,由1個nRF9E5單片機作為通訊管理單元,其他每個nRF9E5單片機作為單個信號檢測通道,共計16個通道。通訊管理單元與NI虛擬儀器采用串口通訊方式,與16個信號檢測通道采用無線通訊方式,在本文中,主要論述的是通訊管理單元與NI虛擬儀器的串口通訊。原理如圖3。

通訊采用被動方式,即通訊管理單元不會主動向NI虛擬儀器傳送數據,必須由NI虛擬儀器向通訊管理單元發出讀寫指令,通訊管理單元才會做出相應的反應。
NI虛擬儀器與通訊管理單元進行串口通訊,通訊采用輪流查詢等方式,每路無線收發單元的地址都不相同。根據需要,無線收發單元的地址用三個ASCII字符表示,地址范圍從000~015,即可有16路單片機通過通訊管理單元與上位機進行串口通訊。通訊管理單元與上位機應設置相同的通訊速率,在此設定為19 200 bit/s。
下位機和上位機的程序流程框圖如圖4和圖5所示。

上位機每向單片機發一指令,單片機在0~500 ms內做出應答,而上位機也必須等單片機返回數據后,才能發新的指令,上位機接收轉發送應至少延時10 ms。如果單片機超過最大響應時間仍沒有應答,或應答數據不齊,則原因可能無效指令、通訊線路故障,單片機沒有開機,通訊地址錯誤等。
上位機發出寫數據指令后,如果單片機返回“NAK”,可能是數據傳輸錯誤,也可能是上位機發送的數據無效,單片機不能接收此數據。
上位機發送命令和接收數據的程序。
對于讀采集通道的數據操作,上位機首先向單片機發送讀數據的命令。單片機接收到指令后,首先進行校驗,若不正確則進行相應處理,若正確則判別上位機讀數據的地址是否和該單片機的地址相同,相同則發送數據,不同則輪詢。當上位機接收到這組數據后,上位機就把該組數據和發送給單片機的數據作比較,如果兩者一致,上位機開始準備接收數據串。數據串的個數,單片機在返回上位機的命令后會跟著一個關于數據量的字符,將該字符轉化為數字量后就是數據串的大小。若比較結果不一致,上位機則會采取措施將錯誤的代碼進行保存,供操作者識別。
串口通訊連續運行15小時,沒有出現通訊錯誤。通訊錯誤在程序設計中分為兩大類:一類是發送和接收數據長度一致,但在通訊過程中由于某些因素出現數據不一致;另一類是發送和接收數據長度不一致,或者是接收不到數據(數據丟失現象),原因可能是通訊暫時中斷或其它。這兩類錯誤在程序設計中分別用不同代碼表示。通訊錯誤與正確數據一樣,都保存在同一文件,且通訊錯誤的出現不會影響程序的正常運行。
模擬試驗結果表明,通訊管理單元與NI虛擬儀器的串口通訊設計是正確的。
[1] nRF9E5中文手冊2006版. 迅通科技.
[2] 陳興華, 梁哲興, 陳樹衡. 虛擬儀器及其應用. 船電技術,2006(增刊).
Serial Communication Based on NI Virtual Instrument and nRF9E5 Single Chip Microcontroller
Liu Bo1, Liang Zhexing2
(1. Naval representatives Office in 712th Institute, Wuhan 430064, China; 2. Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China
TN915
A
1003-4862(2013)12-0052-03
2013-07-18
劉擘(1980-),男,工程師。研究方向:通訊工程。