• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于LPC2368的CAN總線智能節(jié)點(diǎn)設(shè)計(jì)*

      2010-08-11 05:27:32周愛軍胡宏?duì)N崔大連
      艦船電子工程 2010年7期
      關(guān)鍵詞:收發(fā)器微控制器中斷

      周愛軍 胡宏?duì)N 崔大連

      (海軍大連艦艇學(xué)院裝備自動(dòng)化系 大連 116018)

      1 引言

      最初CAN-bus被設(shè)計(jì)作為汽車環(huán)境中的微控制器通訊工具,用于在車載各電子控制裝置ECU之間交換信息,從而形成汽車電子控制網(wǎng)絡(luò)。CAN總線使用多主機(jī)模式進(jìn)行組網(wǎng),通訊方式靈活;使用非破壞性的總線仲裁技術(shù),節(jié)省了總線沖突仲裁時(shí)間;數(shù)據(jù)包采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,傳輸距離長(zhǎng);具備完善的錯(cuò)誤處理機(jī)制,保證了總線的健壯性??梢哉fCAN-bus總線在通信能力、可靠性、實(shí)時(shí)性、靈活性、易用性、傳輸距離等方面較其他串行總線有著明顯的優(yōu)勢(shì)。鑒于此,很多單片機(jī)廠商紛紛將CAN協(xié)議控制器集成在微控制器芯片上,LPC2368是PHILIPS公司推出的一款性價(jià)比很高的ARM7核處理器,內(nèi)部集成兩路獨(dú)立的CAN控制器,以其性能高、成本低和能耗小的特點(diǎn),適用于多種工控領(lǐng)域,本文主要介紹基于LPC2368的CAN智能節(jié)點(diǎn)設(shè)計(jì)[1~2]。

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

      2.1 LPC2368微控制器特點(diǎn)

      LPC2368處理器是基于一款支持實(shí)時(shí)仿真和跟蹤的 32位 ARM7TDMI微控制器,并帶有512KB嵌入的高速FLash存儲(chǔ)器,58KB的SRAM;128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu),使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行;對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用Thumb指令進(jìn)行開發(fā),可將代碼規(guī)模降低30%,而性能的損失卻很小;指令實(shí)行三級(jí)流水線作業(yè),提供Embedded ICE邏輯單元,支持片上斷點(diǎn)和調(diào)試點(diǎn),具有先進(jìn)的軟件開發(fā)和調(diào)試環(huán)境。LPC2368內(nèi)部集成2個(gè)CAN控制器,每一個(gè)CAN控制器都與PHILIPS出品的獨(dú)立CAN控制器SJA1000有著相似的寄存器結(jié)構(gòu),單個(gè)總線上的數(shù)據(jù)傳輸速率可高達(dá)1Mb/s;兼容CAN2.0B,符合IS011898-1規(guī)范;全局驗(yàn)收濾波器可以識(shí)別所有的11位和29位標(biāo)識(shí)符;驗(yàn)收濾波器為選擇的標(biāo)識(shí)符提供Full-style自動(dòng)接收。

      2.2 CAN智能節(jié)點(diǎn)硬件電路

      CAN總線接口部分包括 LPC2368內(nèi)置的CAN協(xié)議控制器、光電耦合器和總線收發(fā)器[3],如圖1所示。

      圖1 接口電路圖

      由于LPC2368內(nèi)置了CAN協(xié)議控制模塊,所以節(jié)點(diǎn)硬件電路只需設(shè)計(jì)好協(xié)議控制器和總線收發(fā)器以及總線收發(fā)器和總線的接口電路即可。這里我們選用了PHILIPS公司(現(xiàn)為NXP公司)的TJA1050高速總線收發(fā)器。在整個(gè)應(yīng)用中,微控制器內(nèi)置的CAN協(xié)議控制模塊主要完成CAN的通信協(xié)議,實(shí)現(xiàn)報(bào)文的裝配和拆分、接收信息的過濾和校驗(yàn)等工作;收發(fā)器TJA1050實(shí)現(xiàn)CAN協(xié)議控制器和通信線路的物理連接,提高CAN總線的驅(qū)動(dòng)能力和可靠性;為了進(jìn)一步提高系統(tǒng)的抗干擾能力,LPC2368引腳 Tx1、Rx1與收發(fā)器 TJA1050并不直接相連,而是使用高速光耦合 6N137和TJA1050相連[4]。

      電路中采用隔離型DC/DC模塊B0505S-1W向收發(fā)器電路供電。這樣就可以很好地實(shí)現(xiàn)總線上各節(jié)點(diǎn)的電氣隔離,這部分電路雖增加了接點(diǎn)的復(fù)雜性,但卻提高了接點(diǎn)的穩(wěn)定性和安全性。

      TJA1050與總線接口部分,使CANH、CANL與地之間并聯(lián)濾波電容,以達(dá)到消除總線高頻干擾的目的,并且使節(jié)點(diǎn)具備一定的防電磁輻射能力。在選取電容大小的時(shí)候必須考慮總線節(jié)點(diǎn)的數(shù)量和總線傳播速率,當(dāng)T JA1050的輸出級(jí)阻抗約200歐姆,總線系統(tǒng)有10個(gè)節(jié)點(diǎn),速度是500kbit/s時(shí),則電容的值不應(yīng)該超過470pF。

      在兩根CAN總線接入端與地之間分別反接了一個(gè)保護(hù)二極管。當(dāng)CAN總線有較高的負(fù)電壓時(shí),二極管的短路可起到一定的過壓保護(hù)作用。根據(jù)TJA1050的特性,本設(shè)計(jì)中CAN終端電阻使用了分裂終端,即總線端節(jié)點(diǎn)的兩個(gè)終端電阻都被分成兩個(gè)等值的電阻,用兩個(gè)60Ω的電阻取代120Ω的電阻,可以有效降低輻射。

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

      軟件調(diào)試環(huán)境采用KEIL公司的keil uvision 4,通過 ULINK仿真調(diào)試。軟件設(shè)計(jì)部分包括CAN協(xié)議控制器的初始化、報(bào)文的接收、報(bào)文的發(fā)送及總線錯(cuò)誤處理四個(gè)模塊[5]。

      3.1 CAN協(xié)議控制器的初始化

      系統(tǒng)是否能正常地工作,初始化程序的設(shè)計(jì)是個(gè)關(guān)鍵。必須對(duì)寫入每個(gè)寄存器的內(nèi)容進(jìn)行仔細(xì)和全面的考慮。控制器初始化工作主要包括:硬件使能、配置管腳連接、軟件復(fù)位、設(shè)置總線波特率、配置模式寄存器、配置中斷工作方式、配置驗(yàn)收濾波器、啟動(dòng)CAN工作等。這部分內(nèi)容與通用CAN協(xié)議控制器SJA1000相似,不再贅述。

      3.2 報(bào)文接收

      CAN報(bào)文的接收采用中斷方式。在ARM7TDMI核處理器中向量中斷控制器VIC具有32個(gè)中斷請(qǐng)求輸入,可將其編程分為3類:FIQ、向量IRQ和非向量IRQ。每個(gè)片內(nèi)外設(shè)都有一條中斷線連接到向量中斷控制器,其中CAN控制器的VIC通道號(hào)是19~23??紤]到CAN控制器的中斷源較多,筆者采用非向量中斷。為了避免接收到的數(shù)據(jù)因?yàn)闆]有得到及時(shí)處理而造成數(shù)據(jù)丟失,我們定義了接收緩沖區(qū),采用環(huán)形緩沖結(jié)構(gòu)(類似于SJA1000CAN控制器中64字節(jié)FIFO環(huán)形緩沖)來接收數(shù)據(jù)。結(jié)合定義的環(huán)形緩沖區(qū)來進(jìn)行CAN報(bào)文的接收程序設(shè)計(jì)。CAN報(bào)文接收模塊流程如圖2所示。

      3.3 報(bào)文的發(fā)送

      LPC2368中CAN控制器為了提高大量數(shù)據(jù)發(fā)送的效率,每個(gè)CAN控制器配有三個(gè)獨(dú)立的發(fā)送緩沖寄存器,這點(diǎn)和SJA1000有所不同。因此與SJA1000的發(fā)送程序相比要相對(duì)復(fù)雜。因?yàn)榘l(fā)送時(shí)是根據(jù)緩沖區(qū)的實(shí)際情況有選擇的把數(shù)據(jù)寫入三個(gè)發(fā)送緩沖之一。每個(gè)緩沖區(qū)的狀態(tài)通過查詢CANSR得知。所以在設(shè)計(jì)發(fā)送程序的時(shí)候要先判斷哪個(gè)緩沖是空閑的,然后再把數(shù)據(jù)寫入緩沖區(qū),啟動(dòng)發(fā)送。報(bào)文發(fā)送流程如圖3所示。

      3.4 總線錯(cuò)誤處理

      為了使節(jié)點(diǎn)工作的更加可靠,對(duì)工作過程中發(fā)生的錯(cuò)誤必須進(jìn)行處理。工作過程中的錯(cuò)誤中斷類型有兩種,一是錯(cuò)誤報(bào)警中斷,另一個(gè)是總線錯(cuò)誤中斷,前者是產(chǎn)生的條件是錯(cuò)誤計(jì)數(shù)器的值超過96,中斷處理方式通常為清零所有的錯(cuò)誤計(jì)數(shù)器的值,維持CAN的運(yùn)行;而總線錯(cuò)誤中斷產(chǎn)生的條件是錯(cuò)誤計(jì)數(shù)器的值到達(dá)255,中斷錯(cuò)誤處理方式為復(fù)位節(jié)點(diǎn),重新初始化CAN控制器。從錯(cuò)誤中斷產(chǎn)生的條件可以得出,錯(cuò)誤報(bào)警中斷會(huì)屏蔽總線錯(cuò)誤中斷,所以為了簡(jiǎn)化錯(cuò)誤處理過程,我們可以使節(jié)點(diǎn)打開總線錯(cuò)誤中斷而屏蔽錯(cuò)誤報(bào)警中斷,在總線錯(cuò)誤累計(jì)255次后,CAN節(jié)點(diǎn)脫離總線,總線錯(cuò)誤中斷的處理是復(fù)位該節(jié)點(diǎn),重新初始化CAN控制器,這樣可以消除錯(cuò)誤,給節(jié)點(diǎn)一個(gè)很好的初態(tài),使節(jié)點(diǎn)重新回歸正常工作狀態(tài)。

      4 結(jié)語

      本文采用LPC2368作為主控CPU,利用其內(nèi)嵌CAN協(xié)議控制器和外置的TJA1050總線收發(fā)器給出了CAN智能節(jié)點(diǎn)的通訊接口設(shè)計(jì)和軟件實(shí)現(xiàn)流程。本設(shè)計(jì)在學(xué)校導(dǎo)航裝備仿真模擬實(shí)驗(yàn)室的建設(shè)中得到了使用,試驗(yàn)證明,本設(shè)計(jì)方案和“單片機(jī)+CAN協(xié)議控制器+總線收發(fā)器”設(shè)計(jì)方案相比,有開發(fā)簡(jiǎn)單、工作穩(wěn)定可靠、支持在系統(tǒng)編程、便于功能擴(kuò)展等優(yōu)勢(shì),具有較高的容錯(cuò)能力和自我診斷修復(fù)功能。

      [1]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2008

      [2]王黎明.CAN現(xiàn)場(chǎng)總線系統(tǒng)的設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2008

      [3]孫傳友.測(cè)控電路及裝置[M].北京:北京航空航天大學(xué)出版社,2007

      [4]張毅剛.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003

      [5]饒運(yùn)濤.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航天航空大學(xué)出版社,2003

      猜你喜歡
      收發(fā)器微控制器中斷
      清管球收發(fā)器設(shè)計(jì)細(xì)節(jié)分析及應(yīng)用
      物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
      電子制作(2017年14期)2017-12-18 07:07:58
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      Virtex5 FPGA GTP_DUAL硬核兩個(gè)收發(fā)器獨(dú)立使用的實(shí)現(xiàn)
      Atmel針對(duì)新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
      最新STM32設(shè)計(jì)工具增加對(duì)混合信號(hào)微控制器的支持
      意法半導(dǎo)體(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器
      AT89C51與中斷有關(guān)的寄存器功能表解
      FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
      新晃| 开鲁县| 静乐县| 偃师市| 城固县| 昌平区| 景泰县| 岑巩县| 新泰市| 盖州市| 宣恩县| 钦州市| 建瓯市| 奇台县| 忻城县| 夏津县| 康平县| 长岛县| 东源县| 辰溪县| 杭锦后旗| 仁布县| 沈阳市| 勐海县| 金坛市| 班玛县| 瓦房店市| 高雄市| 同德县| 金昌市| 泉州市| 衡山县| 武山县| 睢宁县| 永丰县| 白玉县| 青冈县| 常宁市| 彩票| 广灵县| 抚远县|