<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Microchip單片機及收發(fā)器實(shí)現的低成本LIN總線(xiàn)

基于Microchip單片機及收發(fā)器實(shí)現的低成本LIN總線(xiàn)

作者: 時(shí)間:2010-08-31 來(lái)源:網(wǎng)絡(luò ) 收藏

  4.2 軟件實(shí)現

  4.2.1 主節點(diǎn)

  主節點(diǎn)完全按照LIN規范實(shí)現。主節點(diǎn)的任務(wù)就是發(fā)送報文頭和發(fā)送接收數據,實(shí)現一個(gè)網(wǎng)關(guān)的作用。另外,的剩余功能,可以用來(lái)做一些A/D和開(kāi)關(guān)量的采集,還可以驅動(dòng)一些蜂鳴器、小電機或者LED和LCD等器件。主節點(diǎn)發(fā)送流程如圖5所示。


  LIN總線(xiàn)的通信可以通過(guò)配置的EUSART來(lái)實(shí)現。每次通信都由主節點(diǎn)啟動(dòng),此處不考慮從節點(diǎn)到從節點(diǎn)的通信??偩€(xiàn)的配置也由主節點(diǎn)來(lái)實(shí)現,具體波特率可以通過(guò)波特率控制寄存器來(lái)實(shí)現。這里采用9 600的波特率。

  標識符不是一個(gè)節點(diǎn)的地址,而是一個(gè)報文的描述符。當主節點(diǎn)發(fā)送一個(gè)0x3C的命令后,再發(fā)送8 B的00H,總線(xiàn)就進(jìn)入休眠模式。在休眠模式下,總線(xiàn)處于空閑狀態(tài),因此任何一個(gè)從節點(diǎn)都可以喚醒總線(xiàn)。

  主節點(diǎn)采用高精度的石英晶振作為時(shí)鐘源,可以產(chǎn)生低誤差的時(shí)鐘信號。在這里,要把主節點(diǎn)設置為異步半雙工通信模式,8 bit數據模式。時(shí)鐘選擇為內部時(shí)鐘。

  由于EUSART有“發(fā)送間隔字符位(SENDB)”,可以在每次發(fā)送數據前發(fā)送同步間隔字符,這樣可以省掉不少軟件開(kāi)銷(xiāo),使可以致力于其他邏輯的運算。

  4.2.2 從節點(diǎn)

  從節點(diǎn)不需要系統配置的信息,所有從節點(diǎn)接收所有報文,然后再判斷是否需要執行。

  從節點(diǎn)不需要外接石英晶振,可以用單片機內部自帶的RC震蕩器實(shí)現。MICROCHIP的中端8位單片機大多數都內帶高精度的RC震蕩器,在常溫下(25℃),經(jīng)過(guò)校準可以達到±1%的精度。

  每個(gè)單片機在出廠(chǎng)時(shí)都經(jīng)過(guò)校準,并把校準字寫(xiě)在Flash空間的最后一位。在程序開(kāi)始運行時(shí),會(huì )把校準值裝載到W寄存器里。在程序的第一條指令中執行MOVWF OSCCAL,即可將W寄存器里的值送到內部RC震蕩器的校準寄存器里,從而實(shí)現校準。

  從節點(diǎn)先檢測總線(xiàn)電平,當長(cháng)時(shí)間的隱性電平結束,出現大于10個(gè)位定時(shí)的顯性電平后,開(kāi)始數5個(gè)下降沿的時(shí)間,用時(shí)間值除以8,就可以算出波特率。然后從總線(xiàn)上讀取數據,解碼ID,處理響應。

  EUSART支持波特率的自動(dòng)檢測和校準,可以使軟件代碼大量簡(jiǎn)化。從節點(diǎn)可以在總線(xiàn)空閑時(shí)進(jìn)入休眠狀態(tài),當從節點(diǎn)檢測到主節點(diǎn)發(fā)出的同步間隔時(shí),可以從休眠狀態(tài)喚醒。

  當從節點(diǎn)被其他外部中斷喚醒時(shí)(例如A/D轉換完成,外部IO電平變化等),從節點(diǎn)可以喚醒休眠的總線(xiàn)。

  如果從節點(diǎn)的功能比較簡(jiǎn)單,工作電流比較小,可以通過(guò)收發(fā)器MCP2021的參考電壓輸出端來(lái)供電。MCP2021有兩種型號,參考電壓的輸出分別為5 V和3.3 V,適應5 V和3.3 V的單片機。這個(gè)參考電壓的輸出電流最大為50 mA,所以不適合工作電流比較大的場(chǎng)合[3-4]。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>