基于CAN總線和RFID的礦井定位系統(tǒng)設計
考慮到礦井中的設備需要防爆安全認證,本系統(tǒng)設計中盡可能地減少外圍芯片數(shù)量。MCU采用美國微芯公司的PIC18F4580單片機,此單片機集成了基于ECAN技術的CAN總線控制模塊、lO位A/D模塊、增強的通用串口模塊、32KB的增強型Flash存儲器等,內(nèi)部資源豐富,簡化了系統(tǒng)設計。
射頻收發(fā)模塊使用AD公司的可編程射頻收發(fā)芯片ADF7020,工作頻率為431~478MHz和862~956MHz波段,收發(fā)過程工作在半雙工方式,支持ASK/FSK/OOK/GFsK等多種調(diào)制方式。CAN總線驅(qū)動器使用的是致遠電子的通用CAN收發(fā)器芯片CTM8251A,此芯片將傳統(tǒng)的CAN總線驅(qū)動電路的光電隔離和CAN驅(qū)動器集成到一塊芯片,提高了通信的可靠性。
2.1PICl8F458O與CTM825lA的接口電路PIC18F4580帶有CAN控制模塊,支持CAN1.2、CAN2.0A、CAN2.0B協(xié)議,只需外接CAN驅(qū)動器即可實現(xiàn)CAN模塊的硬件設計,接口電路如圖3所示。CAN發(fā)器芯片CTM8251A具有DC2500V隔離功能,符合ISO11898標準,數(shù)據(jù)速率最高達1Mbps,具有自動熱關斷保護功能,并且未上電或欠壓節(jié)點不會影響CAN總線的正常工作。
2.2PIC18F4580與ADF7020的接口電路
PIC18F4580單片機通過ADF7020的串行數(shù)據(jù)輸入引腳SDATA向ADF7020發(fā)送編程控制字,控制其工作方式,并可以通過串行數(shù)據(jù)讀回引腳SREAD讀取ADF7020的工作狀態(tài),SLE引腳作為控制字的鎖存信號。DATAI/O引腳是發(fā)送信號輸入和接收信號輸出分時復用引腳,收發(fā)工作在半雙工方式,因此MCU工作在半雙工的同步通信模式下,通過串行同步接口接收或發(fā)送數(shù)據(jù)。當ADF7020接收到一個來自天線的有效信號后,通過INT/LOCK引腳向MCU發(fā)出中斷信號。
3、系統(tǒng)的軟件設計
本設計的編程環(huán)境是MPLABIDE軟件并內(nèi)嵌MPLAB―C18,可以支持C語言編程。系統(tǒng)的軟件主要分為PIC18F4580初始化、ADF7020初始化、CAN數(shù)據(jù)收發(fā)、讀卡器與電子標簽間的通信算法等部分。
PIC18F4580初始化主要是對片內(nèi)各個功能模塊的初始化,包括:CAN模塊初始化,USART模塊初始化,WDT初始化,設置各個端口的方向等。
ADF7020初始化主要包括:設置晶振電路的接人方式,信號的調(diào)制/解調(diào)方式(ISO/IEC18000―6c標準中使用ASK),定義調(diào)制信號的調(diào)制輸出功率,打開VCO、PLL和輸入輸出時鐘等。在CAN數(shù)據(jù)收發(fā)程序中,讀寫器的MCU通過CAN總線向上位機實時發(fā)送讀寫器識別出的Tag的相關信息,而CPU接收來自上位機的控制命令數(shù)據(jù)。
本系統(tǒng)要求讀寫器能夠識別到其覆蓋范圍內(nèi)的所有Tag,但在讀寫器覆蓋范圍內(nèi)的Tag會幾乎同時響應讀寫器的指令,這樣響應信號就會發(fā)生碰撞,導致通信失敗,讀寫器無法正確識別Tag。因此,讀寫器軟件系統(tǒng)要加人防碰撞算法,保證讀寫器能夠與電子標簽正確地交換信息。本系統(tǒng)使用支持ISO/IEC18000―6c協(xié)議的電子標簽,規(guī)定使用基于概率類型的時隙隨機防碰撞算法。此算法的工作過程為:電子標簽進入讀寫器覆蓋范圍后進人Ready狀態(tài);讀寫器發(fā)送Select命令和Query命令信號(開始一個新的Round周期)并監(jiān)聽響應信號;電子標簽收到Query命令后將一個16位的隨機(或偽隨機)數(shù)(數(shù)值范圍為0000H~3FFFH,即共有多達215個時隙可供使用)裝載到時隙計數(shù)器中,進入Arbitrate狀態(tài),當電子標簽每接收到一個QueryRep命令,時隙計數(shù)器就會進行減法操作(Query命令中規(guī)定了每次減的值Q,而且可以使用QueryAdjust命令修改先前的Query命令規(guī)定的Q值);
當計數(shù)器減為0時電子標簽就進入Reply狀態(tài),此時向讀寫器發(fā)出一個16bit的(偽)隨機數(shù)作為應答信號;如果電子標簽收到一個有效的ACK信號(正確包含自己向讀寫器發(fā)送的16bit隨機數(shù)),那么電子標簽就會進入Acknowledged狀態(tài),否則如果沒有收到正確的ACK,則表明發(fā)生碰撞,返回Arbitrate狀態(tài);在確認狀態(tài)中,電子標簽向讀寫器發(fā)送包含自己的PC(ProtocolContro1)、EPC(ElectronicProductCode)和16bit的CRC校驗等字段的信息;此后讀寫器向電子標簽發(fā)出Read命令,可以讀Tag的EPC和TID的部分或全部內(nèi)容;讀取后Tag又回到Ready狀態(tài)。
由于ISO/IEC18000―6c協(xié)議使用基于概率類型的時隙隨機防碰撞算法,與ISO/IEC18000―6a協(xié)議的ALOHA算法和ISO/IEC18000―6h協(xié)議的自適應二進制數(shù)算法相比,由于時隙隨機防碰撞算法在Tag中使用時隙計數(shù)器進行防碰撞,大大簡化了讀寫器CPU的編程工作,并提高了讀寫器的工作效率。
4、結語
本文針對煤礦安全生產(chǎn)的需要,設計了基于RFID技術的礦井定位系統(tǒng)。為了提高系統(tǒng)的可靠性,減小防爆安全認證的難度,設計中使用高集成度芯片,以減少分立元件的數(shù)量。在讀寫器中實現(xiàn)了基于最新的ISO/IEC18000―6c國際標準協(xié)議的軟件設計,不僅減小了沖突發(fā)生的概率,而且大大提高了讀寫器CPU的效率。讀寫器與上位機的通信使用了可靠性較高、礦井中廣泛使用的CAN總線技術,使地面監(jiān)控室可以及時了解井下的工作狀況。
評論