基于LPC2214和μC/OS-II的iButton接口
電力設(shè)備點(diǎn)檢管理是利用檢測(cè)設(shè)備和儀器,按照預(yù)先制訂的技術(shù)標(biāo)準(zhǔn),定人、定點(diǎn)、定路線(xiàn)、定周期、定方法、定檢查記錄,施行全過(guò)程對(duì)運(yùn)行設(shè)備進(jìn)行動(dòng)態(tài)檢查。點(diǎn)檢人員按要求將手持的個(gè)人點(diǎn)檢機(jī)與安置在設(shè)備現(xiàn)場(chǎng)的id鈕扣相接觸后,該位置相應(yīng)的若干作業(yè)指令應(yīng)逐條顯示在個(gè)人點(diǎn)檢服務(wù)器上,指導(dǎo)各相關(guān)崗位人員完成點(diǎn)檢工作;同時(shí),采集的設(shè)備現(xiàn)場(chǎng)信息以數(shù)字形式被記錄在點(diǎn)檢器的存儲(chǔ)器中,方便地上傳給計(jì)算機(jī)管理系統(tǒng)進(jìn)行統(tǒng)計(jì)分析。dallas公司生產(chǎn)的ibutton系列產(chǎn)品為工業(yè)現(xiàn)場(chǎng)的應(yīng)用和信息識(shí)別技術(shù)研究創(chuàng)造了條件。
本文引用地址:http://m.butianyuan.cn/article/20767.htmibutton(信息鈕扣)的物理結(jié)構(gòu)是一個(gè)封裝在扁圓型不銹鋼外殼里的直徑為16 mm、厚度為3~6 mm的微型計(jì)算機(jī)晶片,是一種攜帶自動(dòng)識(shí)別號(hào)的電子數(shù)據(jù)標(biāo)簽。先進(jìn)的設(shè)計(jì)理念及封裝形式賦予了ibutton超強(qiáng)的抗沖擊、防靜電、防腐蝕、防水、防摩擦等性能,具有ic卡、磁卡等信息載體無(wú)法比擬的優(yōu)勢(shì);極大地滿(mǎn)足系統(tǒng)在可靠性、穩(wěn)定性方面的要求,可確保十年以上的使用壽命。在以 lpc2214設(shè)計(jì)的點(diǎn)檢機(jī)中,ibutton得到了充分的應(yīng)用。下面以ds1990a為例,對(duì)其與lpc2214之間一線(xiàn)串行通信方式進(jìn)行研究。
1 ds1990a的性能特點(diǎn)
堅(jiān)固耐用的ibutton具有優(yōu)秀的環(huán)境適應(yīng)能力,可防塵、防潮和防震。這種緊湊的鈕扣外形使其自動(dòng)對(duì)準(zhǔn)相應(yīng)的探測(cè)器,易于人工操作使用。各種附件使ds1990a在巡檢、物流等現(xiàn)代化管理系統(tǒng)中具有不可替代的作用。其主要性能指標(biāo)如下:
◆ 工廠(chǎng)刻入的64位rom包括48位唯一序列碼、8位crc校驗(yàn)碼和8位家族碼(01h)。
◆ 通過(guò)單線(xiàn)與主機(jī)進(jìn)行數(shù)據(jù)通信,傳輸速率可達(dá)16.3 kbps。
◆ 標(biāo)準(zhǔn)16 mm直徑和1wire協(xié)議保證了與其他ibutton產(chǎn)品的兼容性。
◆ 讀取時(shí)間可在5 ms 以?xún)?nèi)。
◆ 溫度范圍-40~+85℃
2 ds1990a與lpc2214硬件接口設(shè)計(jì)
1-wire是在一條總線(xiàn)上連接1個(gè)主控器和多個(gè)從機(jī)設(shè)備的系統(tǒng)。在任何情況下,ds1990a都是從機(jī)設(shè)備,而總線(xiàn)控制器常由微控制器充任。1-wire總線(xiàn)定義了1根信號(hào)線(xiàn),所以讓總線(xiàn)上每個(gè)設(shè)備都在適當(dāng)?shù)臅r(shí)刻運(yùn)行。ds1990a為漏級(jí)開(kāi)路輸出,總線(xiàn)主控制器可以采用與其一致的等效電路。在主控制器端需加1個(gè)上拉電阻,在短距離傳輸情況下上拉電阻約為5 kω。1個(gè)多點(diǎn)系統(tǒng)由1個(gè)1-wire總線(xiàn)和連接在上面的多個(gè)從機(jī)設(shè)備組成。
1-wire單總線(xiàn)的閑置狀態(tài)為高電平。不管是何種原因,當(dāng)傳輸操作過(guò)程需要暫停下來(lái),且要求傳送過(guò)程還能繼續(xù)時(shí),總線(xiàn)必須處于閑置狀態(tài);如果情況不是這樣或者總線(xiàn)保持低電平超過(guò)120 μs,那總線(xiàn)上的所有器件將要復(fù)位。
ds1990a與lpc2214的接口電路如圖1所示。由于lpc2214 p0口都已被點(diǎn)檢機(jī)其他部分占用,p1口均有上拉電阻,并非開(kāi)漏輸出,因此需有2個(gè)i/o口接ibutton。lpc2214的p1.22口接tx,用作輸出;p1.16口接rx,用作輸入。
3 軟件設(shè)計(jì)
ds1990a內(nèi)建rom僅由單根數(shù)據(jù)線(xiàn)訪(fǎng)問(wèn)。依據(jù)dallas的1-wire協(xié)議,可以從中提取48位序列碼,8位家族碼和8位crc校驗(yàn)碼。1-wire通信協(xié)議規(guī)定,總線(xiàn)的收發(fā)按照特殊時(shí)隙下的總線(xiàn)狀態(tài)進(jìn)行,由主機(jī)發(fā)出的同步脈沖下降沿初始化;所有數(shù)據(jù)讀寫(xiě)都按照低位在前的原則。
ds1990a在1-wire總線(xiàn)上的數(shù)據(jù)訪(fǎng)問(wèn)命令流程依次為:初始化、rom功能命令、讀取數(shù)據(jù)。
3.1 初始化及應(yīng)答
1-wire總線(xiàn)上所有的傳輸操作均由初始化序列開(kāi)始。初始化序列由主機(jī)發(fā)出的復(fù)位脈沖(reset pulse)和從機(jī)發(fā)出的在線(xiàn)應(yīng)答脈沖(presence pulse)組成。一個(gè)復(fù)位脈沖緊跟一個(gè)在線(xiàn)應(yīng)答脈沖表明ds1990a就緒,可執(zhí)行恰當(dāng)?shù)膔om命令進(jìn)行數(shù)據(jù)收發(fā)。
復(fù)位和在線(xiàn)應(yīng)答脈沖時(shí)序如圖2(a)所示,主機(jī)發(fā)送(tx)一個(gè)復(fù)位脈沖(一個(gè)至少480 μs的低電平),然后釋放信號(hào)線(xiàn)進(jìn)入接收模式(rx)。此時(shí),1-wire總線(xiàn)被5 kω上拉電阻拉至高電平,當(dāng)檢測(cè)到數(shù)據(jù)線(xiàn)上信號(hào)的上升沿后,ds1990a等待(tpdl,15~60 μs),然后發(fā)送在線(xiàn)應(yīng)答脈沖(tpdl,15~60 μs)。
3.2 讀寫(xiě)操作
一旦主機(jī)檢測(cè)到應(yīng)答脈沖,就可以發(fā)出rom功能命令。所有rom操作命令的長(zhǎng)度為8位。read rom的命令為[33h]或[0fh],此命令允許總線(xiàn)主控器讀取ds1990a的8位家族碼、唯一的48位序列碼和8位crc校驗(yàn)碼。此命令僅當(dāng)總線(xiàn)上只有一個(gè)ds1990a設(shè)備時(shí)可以使用。若總線(xiàn)上的從機(jī)設(shè)備超過(guò)一個(gè),當(dāng)各設(shè)備同時(shí)發(fā)送時(shí)將會(huì)引發(fā)數(shù)據(jù)沖突。search rom的命令為[f0h],此命令允許總線(xiàn)主控器采用排除法來(lái)確認(rèn)總線(xiàn)上所有設(shè)備的64位rom碼。
讀/寫(xiě)時(shí)隙的定義如圖2(b)、(c)所示,主機(jī)將數(shù)據(jù)線(xiàn)置低初始化所有時(shí)隙。在數(shù)據(jù)線(xiàn)的下降沿,通過(guò)觸發(fā)ds1990a中的延時(shí)電路使得ds1990a與主機(jī)同步;在寫(xiě)時(shí)隙期間,延時(shí)電路決定何時(shí)ds1990a對(duì)數(shù)據(jù)線(xiàn)進(jìn)行采樣。至于讀數(shù)據(jù)的時(shí)隙,如果傳輸?shù)氖恰?”,延時(shí)電路將繼續(xù)被置低近15
μs,然后被置高;如果數(shù)據(jù)位是“1”,則ibutton保持讀數(shù)據(jù)的時(shí)隙不變。
圖2復(fù)位和讀/寫(xiě)時(shí)序
3.3 關(guān)鍵代碼及實(shí)現(xiàn)
主機(jī)和ibutton的通信是通過(guò)初始化、寫(xiě)數(shù)據(jù)時(shí)序、讀數(shù)據(jù)時(shí)序完成的,命令和數(shù)據(jù)的各個(gè)字節(jié)均由最低有效位開(kāi)始逐位傳送。在程序中,先初始化lpc2214的time1定時(shí)器,將其定時(shí)時(shí)間設(shè)定為10 μs,delay子程序的作用是使其延遲time倍的10 μs。reset、writebyte、readbyte分別是初始化、讀、寫(xiě)1字節(jié)的子程序。在指針型函數(shù)*getbuttonid中,將ibutton的64位序列碼保存在buttonid數(shù)組中,最后返回指向這個(gè)數(shù)組的指針。(程序見(jiàn)本刊網(wǎng)站www.mesnet.com.cn——編者注)
結(jié)語(yǔ)
為避免設(shè)備的維修不足或檢修過(guò)剩,當(dāng)前電力設(shè)備管理正由定期檢修和計(jì)劃?rùn)z修管理體制,向預(yù)知性設(shè)備狀態(tài)檢修體制轉(zhuǎn)變,其根本目標(biāo)是提高設(shè)備可靠性、經(jīng)濟(jì)性、降低生產(chǎn)成本,提高設(shè)備的利用率。dallas公司推出的智能信息載體ibutton與其他類(lèi)型的智能卡相比,能更好地解決電力現(xiàn)場(chǎng)環(huán)境比較惡劣,油污、灰塵、振動(dòng)、電磁等不利因素對(duì)它的干擾問(wèn)題。本文提供的ds1990a與lpc2214在嵌入式實(shí)時(shí)操作系統(tǒng)μc/osii中的接口的軟硬件設(shè)計(jì),已在智能點(diǎn)檢機(jī)中推廣應(yīng)用。隨著相關(guān)技術(shù)的發(fā)展,ibutton信息識(shí)別技術(shù)在工業(yè)領(lǐng)域的應(yīng)用會(huì)越來(lái)越廣泛,其經(jīng)濟(jì)作用會(huì)越來(lái)越大。
評(píng)論