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