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

          新聞中心

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

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

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

            4.2 軟件實(shí)現(xiàn)

            4.2.1 主節(jié)點(diǎn)

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


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

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

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

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

            4.2.2 從節(jié)點(diǎn)

            從節(jié)點(diǎn)不需要系統(tǒng)配置的信息,所有從節(jié)點(diǎn)接收所有報(bào)文,然后再判斷是否需要執(zhí)行。

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

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

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

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

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

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


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

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

          評(píng)論


          相關(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); })();