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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于CAN通信的卡車語(yǔ)音報(bào)警器的設(shè)計(jì)

          基于CAN通信的卡車語(yǔ)音報(bào)警器的設(shè)計(jì)

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

          采用的方式完成報(bào)警系統(tǒng)的,系統(tǒng)結(jié)構(gòu)如圖2所示。

          通過MC68HC908GZ16上集成的MS08模塊實(shí)現(xiàn)數(shù)據(jù)。利用C68HC908GZ16的I/O口,我們?cè)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/設(shè)計(jì)">設(shè)計(jì)中使用了市場(chǎng)上常見的ISD公司的ISD4002-120數(shù)碼芯片。該芯片采用3V直流供電,可以錄制并保存2min的信息。其采樣頻率為8kHz,信息分辨率可達(dá)200ms,能夠非常真實(shí)地再現(xiàn)語(yǔ)音、音樂、聲調(diào)和效果音。

          硬件設(shè)計(jì)

          從圖3可以看出,電路主要由三部分構(gòu)成:微控制器 MC68HC908GZ16(內(nèi)部集成的MS08模塊)、語(yǔ)音芯片 ISD4002和CAN總線收發(fā)器TLE6250、ZJYS。微控制器負(fù)責(zé)MSCAN08模塊的初始化,通過CAN模塊實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等任務(wù)。 CAN通信控制模塊主要完成CAN的通信協(xié)議。CAN控制模塊可完成物理層和數(shù)據(jù)鏈路層的所有功能,適用于汽車及一般的工業(yè)環(huán)境。利用CAN通信不但可以減少導(dǎo)線連接,而且能增強(qiáng)診斷和監(jiān)控能力。

          CAN收發(fā)器TLE6250用于提供對(duì)總線差動(dòng)發(fā)送和接收的驅(qū)動(dòng)能力,具有輸出信號(hào)CANH和CANL的最佳匹配、電磁輻射更低、無(wú)待機(jī)模式等優(yōu)點(diǎn)。CANH和CANL與地之間并聯(lián)兩個(gè)25PF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射作用。

          軟件描述

          軟件編程主要實(shí)現(xiàn)兩大功能:利用總線進(jìn)行故障碼接收;通過轉(zhuǎn)換故障碼實(shí)現(xiàn)相應(yīng)的語(yǔ)音故障報(bào)警。語(yǔ)音播放根據(jù)其功能設(shè)計(jì),整個(gè)程序大部分操作在主程序中完成,而CAN接收是在中斷中完成。

          主程序中的操作是初始化各寄存器、I/O端口,然后在死循環(huán)中根據(jù)標(biāo)志位進(jìn)行相應(yīng)的處理,具體流程如圖4所示。

          newmaker.com
          圖4 主程序流程圖



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