劉擘,梁哲興
?
基于NI虛擬儀器和nRF9E5單片機的串口通訊
劉擘1,梁哲興2
(1. 海軍駐712所軍代室,武漢 430064;2. 武漢船用電力推進(jìn)裝置研究所,武漢 430064)
針對多通道、長距離的數(shù)據(jù)傳輸,本文采用串口通訊方式,基于NI工控機和nRF9E5單片機硬件平臺,并通過試驗驗證。
串口通訊 NI虛擬儀器 nRF9E5單片機
單片機與上位PC機的通訊方式有并行通訊和串行通訊。與并行通信相比,串行通信速度比較慢,不過由于其硬件連接占用硬件資源較少(只需兩根線),信號傳輸距離遠(yuǎn),使得串行通訊應(yīng)用廣泛。
本項目要求實現(xiàn)對多個檢測通道數(shù)據(jù)的遠(yuǎn)距離傳輸處理,故采用串行通訊。
串口通訊由硬件平臺和軟件平臺兩部分組成。硬件平臺是由NI虛擬儀器和nRF9E5單片機組成,其中NI虛擬儀器作為串口通訊的上位機,nRF9E5單片機作為串口通訊的下位機。
nRF9E5單片機是系統(tǒng)級無線射頻收發(fā)芯片,內(nèi)嵌高性能8051MCU,4通道12位ADC信號采集。內(nèi)置nRF905收發(fā)器,包括所有nRF905芯片特性,可以工作在shockburstTM模式下(自動處理前綴,地址和CRC),最大程度的抑制了噪聲,工作電壓范圍為1.9~3.6 V。
其原理框圖如下圖所示。
所謂虛擬儀器,是以PC機為基礎(chǔ),配以相應(yīng)測試功能的硬件作為信號輸入/輸出的接口,完成信號的采集、測量與調(diào)理,從而實現(xiàn)各種測試功能的一種計算機化儀器系統(tǒng)。
NI虛擬儀器由通用儀器硬件平臺和應(yīng)用軟件兩大部分構(gòu)成,如圖2所示。
通用儀器硬件平臺是虛擬儀器工作的基礎(chǔ),主要由PC機和信號采集調(diào)理裝置組成,用于完成輸入信號的采集、放大、模/數(shù)轉(zhuǎn)換和信號輸出控制等,其中PC機用來提供實時高效的數(shù)據(jù)處理性能,信號采集調(diào)理裝置主要用來采集、傳輸信號,本項目采用性價比高、通用性強的PXI系統(tǒng),PXI系統(tǒng)主機為NI PXI 1042,數(shù)據(jù)采集設(shè)備選用了一塊PXI 6229多功能數(shù)據(jù)采集卡,它有32路16 Bit模擬量采集口和48路雙向數(shù)字量接口,最大采樣率為240 kS。
應(yīng)用軟件是虛擬儀器的核心,虛擬儀器可以在相同的硬件平臺下,通過不同的測試功能軟件模塊的組合,實現(xiàn)功能完全不同的各種儀器。目前應(yīng)用最為廣泛的虛擬儀器軟件開發(fā)工具就是美國NI公司推出的實驗室虛擬儀器工程平臺LabVIEW,它是一種基于G語言的32位編譯型圖形化編程語言,它采用模塊化、結(jié)構(gòu)化的設(shè)計思想,提高了編程效率,增強了軟件的可維護(hù)性和可擴展性。
NI虛擬儀器具備GPIB,串口,以太網(wǎng),USB等多種接口,可實現(xiàn)各種信號的采集、分析處理和數(shù)據(jù)傳輸?shù)裙δ堋?/p>
nRF9E5單片機內(nèi)嵌8051系列微控制器,可在Keil C51調(diào)試軟件平臺上用C語言編程,編譯完成后通過仿真器將程序下載到單片機ROM中。
NI虛擬儀器軟件采用Labview 8.2版本,進(jìn)行圖形化程序編輯處理。
由于nRF9E5單片機具有無線收發(fā)功能,所以在本項目中,由1個nRF9E5單片機作為通訊管理單元,其他每個nRF9E5單片機作為單個信號檢測通道,共計16個通道。通訊管理單元與NI虛擬儀器采用串口通訊方式,與16個信號檢測通道采用無線通訊方式,在本文中,主要論述的是通訊管理單元與NI虛擬儀器的串口通訊。原理如圖3。
通訊采用被動方式,即通訊管理單元不會主動向NI虛擬儀器傳送數(shù)據(jù),必須由NI虛擬儀器向通訊管理單元發(fā)出讀寫指令,通訊管理單元才會做出相應(yīng)的反應(yīng)。
NI虛擬儀器與通訊管理單元進(jìn)行串口通訊,通訊采用輪流查詢等方式,每路無線收發(fā)單元的地址都不相同。根據(jù)需要,無線收發(fā)單元的地址用三個ASCII字符表示,地址范圍從000~015,即可有16路單片機通過通訊管理單元與上位機進(jìn)行串口通訊。通訊管理單元與上位機應(yīng)設(shè)置相同的通訊速率,在此設(shè)定為19 200 bit/s。
下位機和上位機的程序流程框圖如圖4和圖5所示。
上位機每向單片機發(fā)一指令,單片機在0~500 ms內(nèi)做出應(yīng)答,而上位機也必須等單片機返回數(shù)據(jù)后,才能發(fā)新的指令,上位機接收轉(zhuǎn)發(fā)送應(yīng)至少延時10 ms。如果單片機超過最大響應(yīng)時間仍沒有應(yīng)答,或應(yīng)答數(shù)據(jù)不齊,則原因可能無效指令、通訊線路故障,單片機沒有開機,通訊地址錯誤等。
上位機發(fā)出寫數(shù)據(jù)指令后,如果單片機返回“NAK”,可能是數(shù)據(jù)傳輸錯誤,也可能是上位機發(fā)送的數(shù)據(jù)無效,單片機不能接收此數(shù)據(jù)。
上位機發(fā)送命令和接收數(shù)據(jù)的程序。
對于讀采集通道的數(shù)據(jù)操作,上位機首先向單片機發(fā)送讀數(shù)據(jù)的命令。單片機接收到指令后,首先進(jìn)行校驗,若不正確則進(jìn)行相應(yīng)處理,若正確則判別上位機讀數(shù)據(jù)的地址是否和該單片機的地址相同,相同則發(fā)送數(shù)據(jù),不同則輪詢。當(dāng)上位機接收到這組數(shù)據(jù)后,上位機就把該組數(shù)據(jù)和發(fā)送給單片機的數(shù)據(jù)作比較,如果兩者一致,上位機開始準(zhǔn)備接收數(shù)據(jù)串。數(shù)據(jù)串的個數(shù),單片機在返回上位機的命令后會跟著一個關(guān)于數(shù)據(jù)量的字符,將該字符轉(zhuǎn)化為數(shù)字量后就是數(shù)據(jù)串的大小。若比較結(jié)果不一致,上位機則會采取措施將錯誤的代碼進(jìn)行保存,供操作者識別。
串口通訊連續(xù)運行15小時,沒有出現(xiàn)通訊錯誤。通訊錯誤在程序設(shè)計中分為兩大類:一類是發(fā)送和接收數(shù)據(jù)長度一致,但在通訊過程中由于某些因素出現(xiàn)數(shù)據(jù)不一致;另一類是發(fā)送和接收數(shù)據(jù)長度不一致,或者是接收不到數(shù)據(jù)(數(shù)據(jù)丟失現(xiàn)象),原因可能是通訊暫時中斷或其它。這兩類錯誤在程序設(shè)計中分別用不同代碼表示。通訊錯誤與正確數(shù)據(jù)一樣,都保存在同一文件,且通訊錯誤的出現(xiàn)不會影響程序的正常運行。
模擬試驗結(jié)果表明,通訊管理單元與NI虛擬儀器的串口通訊設(shè)計是正確的。
[1] nRF9E5中文手冊2006版. 迅通科技.
[2] 陳興華, 梁哲興, 陳樹衡. 虛擬儀器及其應(yīng)用. 船電技術(shù),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-),男,工程師。研究方向:通訊工程。