<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總線智能采集卡的設(shè)計(jì)與實(shí)現(xiàn)

          CAN總線智能采集卡的設(shè)計(jì)與實(shí)現(xiàn)

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

          0.引言
          控制器局域網(wǎng)(Controller Area Network)作為一種多線路網(wǎng)絡(luò)通信系統(tǒng),以其時(shí)分多主、非破壞性仲裁和自動(dòng)檢錯(cuò)重發(fā)等靈活、可靠的通信技術(shù),及低廉的價(jià)格,被廣泛地應(yīng)用于工業(yè)自動(dòng)化生產(chǎn)線、汽車、傳感器、醫(yī)療設(shè)備、化大廈、電梯控制、環(huán)境控制等分布式實(shí)時(shí)系統(tǒng)。本采用的是一款A(yù)tmel公司新近推出的帶有控制器的微控制器,是一款很有前途的新型芯片,其內(nèi)部集成控制器,用它來(lái)組建CAN實(shí)時(shí)監(jiān)控系統(tǒng),與傳統(tǒng)的CAN組網(wǎng)方式相比,系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、容易、抗干擾性強(qiáng)等應(yīng)用優(yōu)勢(shì)。
          1.的功能描述
          完成的主要功能有:
          1)采集溫箱里的溫度數(shù)據(jù),并對(duì)其進(jìn)行濾波處理。
          2)監(jiān)視溫度信號(hào)的變化情況,報(bào)警功能。
          3)將采集到的數(shù)據(jù)通過(guò)CAN總線傳給上位機(jī)及其它節(jié)點(diǎn)。
          采集卡帶有8279鍵盤/顯示接口,可通過(guò)手工或上位機(jī)來(lái)設(shè)定各種采集用的參數(shù)。
          2.總體組成
          采集卡主要由單片機(jī)系統(tǒng),8279鍵盤/顯示控制芯片,譯碼驅(qū)動(dòng)電路,LED,按鍵陣列,溫度傳感器DS18B20,光電隔離以及CAN總線物理接口等組成,其硬件組成原理圖見(jiàn)圖1。
          采集卡的總體工作流程如下:
          采集卡上電復(fù)位以后,首先根據(jù)默認(rèn)的參數(shù)初始化CAN總線的各個(gè)寄存器及DS18B20,然后對(duì)8279及顯示LED的狀態(tài)進(jìn)行初始化,接著給T0定時(shí)器裝載初值及設(shè)置中斷寄存器等。待初始化完成之后,就向主機(jī)發(fā)送控制幀,要求主機(jī)設(shè)定采樣周期、發(fā)送時(shí)間間隔、當(dāng)前時(shí)間、發(fā)送主機(jī)地址、本機(jī)標(biāo)識(shí)符等參數(shù)。設(shè)定完之后,就根據(jù)不同的狀態(tài)進(jìn)入到不同的中斷服務(wù)程序中。
          數(shù)據(jù)類型根據(jù)傳輸方向可分為上行數(shù)據(jù)(采集卡→主機(jī))和下行數(shù)據(jù)(主機(jī)→采集卡)。
          上行數(shù)據(jù)主要是采集卡采集到的溫度數(shù)據(jù)。它的處理主要經(jīng)過(guò)以下幾個(gè)步驟:T89C51CC01對(duì)溫度傳感器DS18B20執(zhí)行一個(gè)其RAM存儲(chǔ)器操作命令完成一次溫度測(cè)量。測(cè)量結(jié)果放在DS18B20的暫存器里,然后CPU用一條讀暫存器內(nèi)容的存儲(chǔ)器操作命令將暫存器中數(shù)據(jù)讀出,存放在數(shù)據(jù)存儲(chǔ)區(qū)中。到滿足發(fā)送條件之后,短數(shù)據(jù)直接形成幀送到發(fā)送緩沖區(qū),超過(guò)幀長(zhǎng)的數(shù)據(jù)則要經(jīng)過(guò)分解,打包后再送入CAN總線控制器發(fā)送緩沖區(qū)。CAN控制器通過(guò)CAN物理接口向CAN總線發(fā)送數(shù)據(jù),總線的所有節(jié)點(diǎn)都偵聽(tīng)該數(shù)據(jù),但并非所有節(jié)點(diǎn)都接收此數(shù)據(jù),只有通過(guò)接收濾波的節(jié)點(diǎn)才接收此數(shù)據(jù)。采集卡的數(shù)據(jù)主要是發(fā)送給主機(jī)、監(jiān)控節(jié)點(diǎn)和相關(guān)的控制節(jié)點(diǎn)。當(dāng)采集卡采集到的溫度數(shù)據(jù)超過(guò)報(bào)警上限、報(bào)警下限或變化速率過(guò)快的時(shí)候,采集卡還通過(guò)CAN控制器向主機(jī)發(fā)送報(bào)警信息。
          下行數(shù)據(jù)主要是主機(jī)向采集卡發(fā)送的各種控制信息。雖然采集卡可以接收任何節(jié)點(diǎn)的信息,但它主要起的是傳感器的作用,所以一般只接收主機(jī)來(lái)的各種控制信息??刂菩畔⑼ㄟ^(guò)CAN物理接口進(jìn)入到CAN控制器的接收緩沖器中,采集卡根據(jù)幀類型來(lái)區(qū)分不同的控制幀并設(shè)定相應(yīng)的參數(shù),并進(jìn)行相應(yīng)的接收、發(fā)送處理。

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


          3.硬件具體組成描述
          1)核心CPU ―T89C51CC01
          T89C51CC01主要具有以下特性:其片內(nèi)具有8051內(nèi)核,具有1個(gè)CAN控制器, 8路模擬量輸入的10位ADC變換器,可在系統(tǒng)編程的32K字節(jié)Flash程序存儲(chǔ)器,2K字節(jié)程序加載Flash程序存儲(chǔ)器,256字節(jié)RAM,1K字節(jié)XRAM和2K字節(jié)E2PROM數(shù)據(jù)存儲(chǔ)器,一個(gè)21位看門狗定時(shí)器。該微控制器基于高性能的靜態(tài)結(jié)構(gòu),采用先進(jìn)的CMOS制造工藝,包含5個(gè)端口34根雙向I/O線,3個(gè)16位定時(shí)/計(jì)數(shù)器、14個(gè)中斷源4級(jí)嵌套中斷結(jié)構(gòu)、1個(gè)全雙工UART、其提供很寬的操作頻率范圍,支持12時(shí)鐘和6時(shí)鐘操作。另外,使用者可利用片上Boot加載程序,通過(guò)CAN或UART接口對(duì)該控制器進(jìn)行在系統(tǒng)或在應(yīng)用編程。
          T89C51CC01的最顯著的一個(gè)特點(diǎn)是內(nèi)部集成強(qiáng)大功能的CAN控制器。該控制器支持CAN2.A和CAN 2.B協(xié)議,通過(guò)報(bào)文對(duì)象頁(yè)寄存器管理15個(gè)獨(dú)立的報(bào)文對(duì)象.每個(gè)報(bào)文對(duì)象可分別編程為發(fā)送、接收或緩沖接收的報(bào)文,并可通過(guò)標(biāo)識(shí)符寄存器和標(biāo)識(shí)符屏蔽寄存器來(lái)設(shè)置11位或29位標(biāo)識(shí)符和標(biāo)識(shí)符屏蔽碼來(lái)確定報(bào)文對(duì)象的優(yōu)先級(jí),以及CAN控制器對(duì)該報(bào)文對(duì)象是否接收或拒絕。其通信的波特率可根據(jù)實(shí)際通信距離和需要對(duì)位定時(shí)寄存器進(jìn)行設(shè)定,最大波特率可達(dá)1Mbps。T89C51CC01的結(jié)構(gòu)圖如圖2所示。其P0口為8位并行I/O口,將P0.0與DS18B20連接, P4.0(TxDC)和P4.1(RxDC)與82C250連接。P3.4(T0)、P3.5(T1)和P1.0(T2)是T89C51CC01內(nèi)部定時(shí)器的引腳,P3.2(INT0)和P3.3(INT1)是T89C51CC01的外部中斷引腳、低電平有效。


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

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