新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM7的多路韋根信號采集與處理

基于ARM7的多路韋根信號采集與處理

作者: 時(shí)間:2008-06-18 來源:網(wǎng)絡(luò) 收藏

在門禁、安防、樓宇自動化等領(lǐng)域中,各類身份識別卡(如磁卡、射頻IC卡)包含的ID信息經(jīng)讀卡器(Reader)讀取后轉(zhuǎn)化為二進(jìn)制數(shù)據(jù),一般采用標(biāo)準(zhǔn)韋根(Wiegand)接口或串行通信方式與各類控制設(shè)備相連,以實(shí)現(xiàn)相應(yīng)的管理和控制功能。與串行通信相比,韋根具有響應(yīng)速度快、數(shù)據(jù)保密性及兼容性好的優(yōu)點(diǎn),應(yīng)用較為普遍。本文介紹了一種的多的方法,具有實(shí)現(xiàn)方便、功能強(qiáng)的特點(diǎn)。

1 韋根簡介

韋根信號是一種單工的串行異步通信協(xié)議。它的每個(gè)信息幀由一串不定長的二進(jìn)制數(shù)據(jù)位構(gòu)成。根據(jù)所表達(dá)的ID信息的長短,幀長度有26、34、42和66位4種常見的格式。其中,首位和末位為奇偶校驗(yàn)位,所以實(shí)際對應(yīng)的ID信息字長分別為3、4、5和8個(gè)字節(jié)。韋根信號接口采用2線制輸出,如圖1所示。D0/D1分為“0”數(shù)據(jù)線和“1”數(shù)據(jù)線,信號高電平為+5 V,低電平有效(邏輯“1”)。例如,D1出現(xiàn)一次低電平表示1;D0出現(xiàn)一次低電平表示0。信號的脈沖寬度為40~100μs,脈沖周期為0.8~1.6 ms,相鄰兩幀發(fā)送時(shí)間間隔(幀間距)≥250 ms,通信距離小于150 m。

2 接口硬件構(gòu)成

接收韋根信號的上層控制設(shè)備通常是一個(gè)單片機(jī)控制系統(tǒng),承擔(dān)了I/O口驅(qū)動、以太網(wǎng)通信、數(shù)據(jù)、液晶顯示等任務(wù)。韋根信號脈沖寬度僅為40~100μs,如果采用掃描I/O口的方式,只有滿足掃描周期40 μs的條件(即采樣頻率高于25 kHz),才能夠捕獲一個(gè)信息幀內(nèi)所有的下降脈沖信號,否則將因出現(xiàn)“脈沖遺漏”造成讀數(shù)錯(cuò)誤。如此高的掃描速度將極大地消耗CPU資源,阻塞單片機(jī)系統(tǒng)其他任務(wù)的正常執(zhí)行,所以一般通過外部中斷控制線INT接入韋根信號。每個(gè)韋根接頭都連接到CPU的一個(gè)中斷信號引腳上,以中斷觸發(fā)的方式。由于CPU外部中斷數(shù)量的限制,一臺控制設(shè)備最多只能接入1~2信號。

為了能夠接收多路信號,可以由另一個(gè)獨(dú)立的單片機(jī)構(gòu)成一個(gè)從機(jī)系統(tǒng),以循環(huán)掃描數(shù)據(jù)總線的方式工作,專門負(fù)責(zé)多路信號的與處理,并將處理后的ID信息通過串行或并行方式發(fā)給主控單片機(jī)。但是這種方式增加了系統(tǒng)的復(fù)雜度,從而給可靠性帶來隱患,同時(shí)也增加了成本。

本設(shè)計(jì)中主控制器是NXP2214,采用中斷觸發(fā)綜合掃描I/O的新方法,只用一個(gè)CPU的中斷信號,實(shí)現(xiàn)多接口信號的。韋根接口硬件電路如圖2所示。韋根接口是5 V的電平,而ARM內(nèi)核的CPU是3.3 V的電平,因此韋根信號首先通過芯片SN74LVC4245轉(zhuǎn)換成3.3 V電平。然后,輸入到NXP2214的P0.8~P0.15引腳上,這些引腳通過I/O方式掃描信號。每個(gè)韋根信號通過8輸入與非門SN74HC30D得到一個(gè)中斷信號,輸入到NXP2214的外部中斷P0.16引腳。

當(dāng)有任何一路韋根接口產(chǎn)生低電平時(shí),經(jīng)過SN74-HC30D都會產(chǎn)生中斷;微控制器立刻響應(yīng)中斷,掃描輸入信號獲取完整的信號幀后退出中斷。這樣,只需要一個(gè)中斷信號,只在有信號時(shí)掃描I/O,不但不會阻塞系統(tǒng)其他任務(wù)的正常執(zhí)行,而且可以擴(kuò)展出更多的韋根接口。

3 接口軟件設(shè)計(jì)

為了快速響應(yīng),使用最高級的中斷優(yōu)先級,當(dāng)外部4路韋根接口有任何一路信號產(chǎn)生有效電平時(shí),NXP2214都可以產(chǎn)生中斷。在中斷處理程序中,并行掃描4路韋根接口,并分別保存到變量。如果大于脈沖周期的時(shí)間間隔內(nèi)(如2.5 ms),都沒有發(fā)現(xiàn)任何一路信號產(chǎn)生有效電平,則認(rèn)為傳輸完畢。接著處理數(shù)據(jù)和發(fā)送消息通知其他任務(wù),然后退出中斷。并行I/O掃描的流程如圖3所示。其中,WG[0]~WG[3]為全局變量;外部中斷處理函數(shù)使用中斷句柄調(diào)用。

具體的掃描判斷過程如下:在定時(shí)器沒有超時(shí)時(shí),首先讀入韋根信號引腳的電平到cur變量;接著判斷pre是否等于(curpre),即判斷是否產(chǎn)生1到0變化的有效電平,通過下降沿判斷的方式,防止誤把1次0當(dāng)成多個(gè)0讀入。如果產(chǎn)生了下降沿,則判斷信號是哪路韋根信號,對應(yīng)存入變量WG[0]~wG[3]。如果是DATA0產(chǎn)生,則直接把變量左移1位;如果是DATA1產(chǎn)生,則變量加1后再左移。

該并行掃描處理的方法,能夠保證韋根接口在同時(shí)有多路信號產(chǎn)生的情況下,也可以正確操作。中斷觸發(fā)掃描過程,一個(gè)掃描結(jié)束后信號都保存到WG[0]~WG[3]中。

本文采用的是標(biāo)準(zhǔn)韋根輸出,信號幀由26位二進(jìn)制數(shù)組成,幀格式如下:

奇偶校驗(yàn)判斷正確后,將變量中的數(shù)據(jù)去除校驗(yàn)位變成有效數(shù)據(jù);然后調(diào)用OSMboxPost函數(shù)發(fā)送消息,以通知其他任務(wù)處理。

4 結(jié) 論

本文的程序和硬件均在實(shí)際產(chǎn)品中調(diào)試通過。實(shí)驗(yàn)表明,在8個(gè)通道同時(shí)完成輸入連續(xù)的韋根信號的情況下,微控制器NXP2214不僅能夠全部正確接收讀卡器的韋根數(shù)據(jù),還能同時(shí)完成處理TCP/IP、液晶顯示以及其他任務(wù),達(dá)到了設(shè)計(jì)要求。單中斷觸發(fā)并行I/O掃描的方法,不僅可滿足應(yīng)用要求,擴(kuò)展出多個(gè)韋根接口,而且具有成本低、易實(shí)現(xiàn)、功能強(qiáng)等特點(diǎn)。



關(guān)鍵詞: 采集 處理 信號 路韋根 ARM7 基于

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉