NXP2214實(shí)現(xiàn)多路韋根信號(hào)采集硬件設(shè)計(jì)
為了快速響應(yīng),使用最高級(jí)的中斷優(yōu)先級(jí),當(dāng)外部4路韋根接口有任何一路信號(hào)產(chǎn)生有效電平時(shí),NXP2214都可以產(chǎn)生中斷。在中斷處理程序中,并行掃描4路韋根接口,并分別保存到變量。如果大于脈沖周期的時(shí)間間隔內(nèi)(如2.5 ms),都沒(méi)有發(fā)現(xiàn)任何一路信號(hào)產(chǎn)生有效電平,則認(rèn)為傳輸完畢。接著處理數(shù)據(jù)和發(fā)送消息通知其他任務(wù),然后退出中斷。并行I/O掃描的流程如圖3所示。
具體的掃描判斷過(guò)程如下:在定時(shí)器沒(méi)有超時(shí)時(shí),首先讀入韋根信號(hào)引腳的電平到cur變量;接著判斷pre是否等于(curpre),即判斷是否產(chǎn)生1到0變化的有效電平,通過(guò)下降沿判斷的方式,防止誤把1次0當(dāng)成多個(gè)0讀入。如果產(chǎn)生了下降沿,則判斷信號(hào)是哪路韋根信號(hào),對(duì)應(yīng)存入變量WG[0]~wG。如果是DATA0產(chǎn)生,則直接把變量左移1位;如果是DATA1產(chǎn)生,則變量加1后再左移。
該并行掃描處理的方法,能夠保證韋根接口在同時(shí)有多路信號(hào)產(chǎn)生的情況下,也可以正確操作。中斷觸發(fā)掃描過(guò)程,一個(gè)掃描結(jié)束后信號(hào)都保存到WG[0]~WG[3]中。
本文采用的是標(biāo)準(zhǔn)韋根輸出,信號(hào)幀由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)試通過(guò)。實(shí)驗(yàn)表明,在8個(gè)通道同時(shí)完成輸入連續(xù)的韋根信號(hào)的情況下,微控制器NXP2214不僅能夠全部正確接收讀卡器的韋根數(shù)據(jù),還能同時(shí)完成處理TCP/IP、液晶顯示以及其他任務(wù),達(dá)到了設(shè)計(jì)要求。
評(píng)論