3 軟件系統(tǒng)設(shè)計
在初始化單片機(jī)程序中,子系統(tǒng)A 外部中斷設(shè)置為低電平觸發(fā),子系統(tǒng)A 的中斷信號源由nRF24L01提供,當(dāng)nRF24L01 收到數(shù)據(jù)后產(chǎn)生中斷信號,通知MCU 來讀取數(shù)據(jù)。子系統(tǒng)B 不使用中斷功能。
在初始化nRF24L01 程序中,子系統(tǒng)B 配置為發(fā)送模式,使用16 位CRC 校驗。使用自動應(yīng)答功能,數(shù)據(jù)通道0 被設(shè)置為接收應(yīng)答信號,其數(shù)據(jù)通道0 的接收地址必須與發(fā)送端的地址相等,以此來保證能正確的收到應(yīng)答信號。一個系統(tǒng)最多可以有六個子系統(tǒng)A 組成,這6 個子系統(tǒng)的發(fā)送地址不能重復(fù)。子系統(tǒng)A 配置為接收模式,使用16 位CRC 校驗,最多接收6 個通道的數(shù)據(jù)。這6 個接收地址和各子系統(tǒng)B 中的發(fā)送地址相等。
在初試化SJA1000 中,使用PliCAN 模式,波特率125Kbps,禁止接受和發(fā)送中斷;輸出控制寄存器配置如下:正常模式,TX 下拉,輸出控制極性。此外,需正確配置驗收代碼寄存器和驗收屏蔽寄存器,此配置用于CAN 總線仲裁功能的實現(xiàn)。
在初始化MF RC500 中,其主要設(shè)置如下:TX1和TX2 的輸出配置為13.56MHz 能量載波;解碼器的輸入源為內(nèi)部解調(diào)器;使用Q 時鐘作為接收器時鐘;禁止發(fā)送和接收中斷;設(shè)置RxThreshold 寄存器值為0xFF,BitPhase 寄存器值為0xAD 等。
復(fù)位請求函數(shù)將在天線的有效范圍內(nèi)搜索Mifare1 卡,如果有卡存在,將建立通信連接并讀取卡上的卡片類型號TAGTYPE.防碰撞函數(shù)使MF RC500 在多張Mifare 1 卡選擇其中的一張??ㄟx擇函數(shù)能夠和已知序列號的卡進(jìn)行通信。認(rèn)證函數(shù)將Mifare 1 卡上的密碼和MF RC500 的EEPROM 中的密鑰進(jìn)行匹配。
只有匹配正確后,才能進(jìn)行對卡的讀寫操作。發(fā)送停機(jī)指令設(shè)置Mifare 1 卡為HALT MODE.
CAN 函數(shù)用于將有關(guān)數(shù)據(jù)發(fā)送至PC 機(jī)。本次設(shè)計采用查詢方式以確保數(shù)據(jù)已經(jīng)發(fā)送。通過查詢狀態(tài)寄存器中的標(biāo)志位TBS、TCS 和TS 即可確認(rèn)是否數(shù)據(jù)發(fā)送完畢。類似的,在無線函數(shù)中為確保數(shù)據(jù)已經(jīng)發(fā)送,通過查詢狀態(tài)寄存器中的TX_DS 即可。
圖7 子系統(tǒng)A 軟件流程
圖8 子系統(tǒng)B 軟件流程圖
4 系統(tǒng)測試
首先,對RFID 模塊進(jìn)行了測試。將MIFARE 1卡放入天線有效范圍內(nèi),對該卡進(jìn)行讀寫操作,并將相關(guān)數(shù)據(jù)顯示在液晶屏上。經(jīng)過該測試,RFID 模塊讀寫正常。 隨后,測試該系統(tǒng)傳輸網(wǎng)絡(luò)的實時性,本文以溫度數(shù)據(jù)的無線傳輸進(jìn)行測試。測量溫度的裝置為DS18B20 單線溫度傳感器。將該溫度傳感器連接至子系統(tǒng)B 中,溫度傳感器每隔一秒對室內(nèi)溫度采樣一次,微控制器讀取溫度數(shù)據(jù)并通過無線網(wǎng)絡(luò)發(fā)送給A 子系統(tǒng),A 子系統(tǒng)接收數(shù)據(jù)并通過CAN 總線發(fā)送至PC 端。
PC 端使用Visual Basic 6.0 編寫上位機(jī)程序,上位機(jī)將溫度數(shù)據(jù)繪制成曲線并寫入文本。溫度曲線如圖8 所示,其中溫度值的精度為1 攝氏度。通過對溫度曲線圖和文本數(shù)據(jù)的對比觀察,發(fā)現(xiàn)溫度數(shù)據(jù)無異常, 數(shù)據(jù)沒有出現(xiàn)丟失情況。
圖9 溫度曲線圖
5 結(jié)語
本文利用了CAN 總線取代RS-485 總線,克服了后者存在的缺點。同時還使用了無線技術(shù),在減少大量布線工作的同時,充分利用了nRF24L01 多點通訊的功能。在系統(tǒng)搭建完成后,筆者對系統(tǒng)進(jìn)行了長時間測試。測試結(jié)果表明:數(shù)據(jù)傳輸穩(wěn)定,可靠,實時性高,克服了傳統(tǒng)基于RS485 總線設(shè)計的RFID 收費系統(tǒng)的缺陷,具有較強(qiáng)的使用價值。
評論
查看更多