<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于LPC2214和μCOS-II的iButton接口

          基于LPC2214和μCOS-II的iButton接口

          作者: 時間:2012-04-06 來源:網(wǎng)絡(luò) 收藏

          (信息鈕扣)的物理結(jié)構(gòu)是一個封裝在扁圓型不銹鋼外殼里的直徑為16 mm、厚度為3~6 mm的微型計(jì)算機(jī)晶片,是一種攜帶自動識別號的電子數(shù)據(jù)標(biāo)簽。先進(jìn)的設(shè)計(jì)理念及封裝形式賦予了超強(qiáng)的抗沖擊、防靜電、防腐蝕、防水、防摩擦等性能,具有IC卡、磁卡等信息載體無法比擬的優(yōu)勢;極大地滿足系統(tǒng)在可靠性、穩(wěn)定性方面的要求,可確保十年以上的使用壽命。在以 設(shè)計(jì)的點(diǎn)檢機(jī)中,得到了充分的應(yīng)用。下面以DS1990A為例,對其與之間一線串行通信方式進(jìn)行研究。

          本文引用地址:http://www.ex-cimer.com/article/149273.htm

          1 DS1990A的性能特點(diǎn)

          堅(jiān)固耐用的iButton具有優(yōu)秀的環(huán)境適應(yīng)能力,可防塵、防潮和防震。這種緊湊的鈕扣外形使其自動對準(zhǔn)相應(yīng)的探測器,易于人工操作使用。各種附件使DS1990A在巡檢、物流等現(xiàn)代化管理系統(tǒng)中具有不可替代的作用。其主要性能指標(biāo)如下:

          工廠刻入的64位ROM包括48位唯一序列碼、8位CRC校驗(yàn)碼和8位家族碼(01H)。
          通過單線與主機(jī)進(jìn)行數(shù)據(jù)通信,傳輸速率可達(dá)16.3 kbps。
          標(biāo)準(zhǔn)16 mm直徑和1Wire協(xié)議保證了與其他iButton產(chǎn)品的兼容性。
          讀取時間可在5 ms 以內(nèi)。
          溫度范圍-40~+85℃
          2 DS1990A與硬件設(shè)計(jì)

          1-Wire是在一條總線上連接1個主控器和多個從機(jī)設(shè)備的系統(tǒng)。在任何情況下,DS1990A都是從機(jī)設(shè)備,而總線控制器常由微控制器充任。1-Wire總線定義了1根信號線,所以讓總線上每個設(shè)備都在適當(dāng)?shù)臅r刻運(yùn)行。DS1990A為漏級開路輸出,總線主控制器可以采用與其一致的等效電路。在主控制器端需加1個上拉電阻,在短距離傳輸情況下上拉電阻約為5 kΩ。1個多點(diǎn)系統(tǒng)由1個1-Wire總線和連接在上面的多個從機(jī)設(shè)備組成。

          1-Wire單總線的閑置狀態(tài)為高電平。不管是何種原因,當(dāng)傳輸操作過程需要暫停下來,且要求傳送過程還能繼續(xù)時,總線必須處于閑置狀態(tài);如果情況不是這樣或者總線保持低電平超過120 μs,那總線上的所有器件將要復(fù)位。

          DS1990A與LPC2214的電路如圖1所示。由于LPC2214 P0口都已被點(diǎn)檢機(jī)其他部分占用,P1口均有上拉電阻,并非開漏輸出,因此需有2個I/O口接iButton。LPC2214的P1.22口接Tx,用作輸出;P1.16口接Rx,用作輸入。

          搜狗瀏覽器截圖(23).jpg

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

          DS1990A內(nèi)建ROM僅由單根數(shù)據(jù)線訪問。依據(jù)Dallas的1-Wire協(xié)議,可以從中提取48位序列碼,8位家族碼和8位 CRC校驗(yàn)碼。1-Wire通信協(xié)議規(guī)定,總線的收發(fā)按照特殊時隙下的總線狀態(tài)進(jìn)行,由主機(jī)發(fā)出的同步脈沖下降沿初始化;所有數(shù)據(jù)讀寫都按照低位在前的原則。

          DS1990A在1-Wire總線上的數(shù)據(jù)訪問命令流程依次為:初始化、ROM功能命令、讀取數(shù)據(jù)。

          3.1 初始化及應(yīng)答

          1-Wire總線上所有的傳輸操作均由初始化序列開始。初始化序列由主機(jī)發(fā)出的復(fù)位脈沖(Reset Pulse)和從機(jī)發(fā)出的在線應(yīng)答脈沖(Presence Pulse)組成。一個復(fù)位脈沖緊跟一個在線應(yīng)答脈沖表明DS1990A就緒,可執(zhí)行恰當(dāng)?shù)腞OM命令進(jìn)行數(shù)據(jù)收發(fā)。

          復(fù)位和在線應(yīng)答脈沖時序如圖2(a)所示,主機(jī)發(fā)送(Tx)一個復(fù)位脈沖(一個至少480 μs的低電平),然后釋放信號線進(jìn)入接收模式(Rx)。此時,1-Wire總線被5 kΩ上拉電阻拉至高電平,當(dāng)檢測到數(shù)據(jù)線上信號的上升沿后,DS1990A等待(tPDL,15~60 μs),然后發(fā)送在線應(yīng)答脈沖(tPDL,15~60 μs)。

          3.2 讀寫操作

          一旦主機(jī)檢測到應(yīng)答脈沖,就可以發(fā)出ROM功能命令。所有ROM操作命令的長度為8位。Read ROM的命令為[33H]或[0FH],此命令允許總線主控器讀取DS1990A的8位家族碼、唯一的48位序列碼和8位CRC校驗(yàn)碼。此命令僅當(dāng)總線上只有一個DS1990A設(shè)備時可以使用。若總線上的從機(jī)設(shè)備超過一個,當(dāng)各設(shè)備同時發(fā)送時將會引發(fā)數(shù)據(jù)沖突。Search ROM的命令為[F0H],此命令允許總線主控器采用排除法來確認(rèn)總線上所有設(shè)備的64位ROM碼。

          讀/寫時隙的定義如圖2(b)、(c)所示,主機(jī)將數(shù)據(jù)線置低初始化所有時隙。在數(shù)據(jù)線的下降沿,通過觸發(fā)DS1990A中的延時電路使得DS1990A與主機(jī)同步;在寫時隙期間,延時電路決定何時DS1990A對數(shù)據(jù)線進(jìn)行采樣。至于讀數(shù)據(jù)的時隙,如果傳輸?shù)氖?ldquo;0”,延時電路將繼續(xù)被置低近15 μs,然后被置高;如果數(shù)據(jù)位是“1”,則iButton保持讀數(shù)據(jù)的時隙不變。

          搜狗瀏覽器截圖(24).jpg

          3.3 關(guān)鍵代碼及實(shí)現(xiàn)

          主機(jī)和iButton的通信是通過初始化、寫數(shù)據(jù)時序、讀數(shù)據(jù)時序完成的,命令和數(shù)據(jù)的各個字節(jié)均由最低有效位開始逐位傳送。在程序中,先初始化LPC2214的Time1定時器,將其定時時間設(shè)定為10 μs,Delay子程序的作用是使其延遲time倍的10 μs。Reset、WriteByte、ReadByte分別是初始化、讀、寫1字節(jié)的子程序。在指針型函數(shù)*GetButtonID中,將iButton的64位序列碼保存在ButtonID數(shù)組中,最后返回指向這個數(shù)組的指針。

          結(jié)語

          本文提供的DS1990A與LPC2214在嵌入式實(shí)時操作系統(tǒng)μC/OSII中的的軟硬件設(shè)計(jì),已在智能點(diǎn)檢機(jī)中推廣應(yīng)用。隨著相關(guān)技術(shù)的發(fā)展,iButton信息識別技術(shù)在工業(yè)領(lǐng)域的應(yīng)用會越來越廣泛,其經(jīng)濟(jì)作用會越來越大.



          關(guān)鍵詞: 接口 iButton COS-II LPC2214 基于

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();