0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于EasyJTAG仿真器上采用LPC2292單片機(jī)實(shí)現(xiàn)CAN節(jié)點(diǎn)的設(shè)計

牽手一起夢 ? 來源:王玉玲 ? 作者:電子元器件應(yīng)用 ? 2020-04-11 17:21 ? 次閱讀

引言

CAN(Controller Area Network)總線控制器局域網(wǎng)絡(luò)是在1986年2月的SAE大會上,由RoberBosch公司首先提出的。CAN總線是一種串行通信協(xié)議,它能有效支持高安全等級的分布式實(shí)時控制,其最初的目的是用在汽車上。但由于采用了許多新技術(shù)及獨(dú)特的設(shè)計,CAN總線與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性、實(shí)時性和靈活性,目前的應(yīng)用范圍已不局限于汽車行業(yè),而是擴(kuò)展到了機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械、家用電器及傳感器等諸多領(lǐng)域。CAN節(jié)點(diǎn)的設(shè)計多采用單片機(jī),為此,本文給出了一種基于本身已經(jīng)嵌入了CAN控制器的單片機(jī)LPC2292的CAN總線智能節(jié)點(diǎn)的設(shè)計方案。

基于EasyJTAG仿真器上采用LPC2292單片機(jī)實(shí)現(xiàn)CAN節(jié)點(diǎn)的設(shè)計

1、 LPC2292控制器

LPC2292是一個可以支持實(shí)時仿真和跟蹤的16/32位ARM7TDMI-S CPU微控制器,它帶有256K字節(jié)的嵌人式高速Flash存儲器,并具有的128位寬度的存儲器接口和獨(dú)特的加速結(jié)構(gòu),可使32位代碼在最大時鐘速率下運(yùn)行。而對代碼有嚴(yán)格控制要求的應(yīng)用則可使用16位Thumb模式,這樣可將代碼規(guī)模降低30%以上,而性能的損失卻很小。LPC2292采用144腳封裝、可使用的GPIO高達(dá)76(使用外部存儲器)~112個(單片應(yīng)用)、并具有極低的功耗。LPC2292內(nèi)含多個32位定時器、4路10位ADC、2路CAN以及多達(dá)9路外部中斷等,特別適用于汽車、工業(yè)控制應(yīng)用、醫(yī)療系統(tǒng)和容錯維護(hù)總線。

LPC2292內(nèi)部集成的2路CAN控制器符合CAN規(guī)范2.0B ISO 11898-1;可訪問32位的寄存器RAM;每個總線的數(shù)據(jù)速率為1 MB/s;全局驗(yàn)收濾波器可識別所有總線的11位和29位Rx標(biāo)識符;驗(yàn)收濾波器為選擇的標(biāo)準(zhǔn)標(biāo)識符提供有FullCAN-STyle自動接收功能。

2 、節(jié)點(diǎn)硬件電路設(shè)計

CAN總線的節(jié)點(diǎn)硬件主要包括LPC2292、CAT1024、82C250、6N137以及B0505S。其中,LPC2292是節(jié)點(diǎn)的微處理器及CAN通信控制器,CAN總線驅(qū)動器采用82C250。為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,在TD1、RD1與82C250之間應(yīng)通過高速光耦6N137相連,這樣可以很好的實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)間的電氣隔離。要注意的是:光耦電路部分采用的兩個電源VCC和VDD必須完全隔離。這里的B0505S就起這個作用。另外,節(jié)點(diǎn)復(fù)位電路采用CAT1024來提高其可靠性。

3 、軟件設(shè)計

該系統(tǒng)的軟件調(diào)試可在ADS1.2調(diào)試環(huán)境及EasyJTAG仿真器上進(jìn)行。

和硬件電路設(shè)計相比,軟件的設(shè)計相對來說要復(fù)雜些。CAN總線智能節(jié)點(diǎn)的軟件設(shè)計主要包括三部分:CAN節(jié)點(diǎn)初始化、報文發(fā)送和報文接收。除此之外,還必須編寫LPC2292的啟動代碼,即對系統(tǒng)進(jìn)行初始化。

3.1 LPC2292的啟動代碼

啟動代碼包括異常中斷向量表、堆棧初始化、目標(biāo)板初始化及存儲系統(tǒng)初始化等,一般都用匯編語言編寫。這里不作詳細(xì)介紹。

3.2 CAN控制器初始化

CAN總線控制器的初始化過程主要包括相應(yīng)的引腳功能設(shè)置、工作方式設(shè)置、波特率參數(shù)設(shè)置以及出錯警告界限設(shè)置等,下面是對CAN1的初始化代碼(CAN2與之類似):

上面所述是對CAN控制器初始化的主要步驟,另外,還可以根據(jù)具體情況對其它CAN寄存器的值進(jìn)行設(shè)置。

LPC2292中有個全局驗(yàn)收濾波器,該模塊可為所有CAN控制器提供接收標(biāo)識符的查詢功能(即驗(yàn)收濾波)。另外,驗(yàn)收濾波器還可為選擇的標(biāo)準(zhǔn)標(biāo)識符提供fullCAN-style自動接收功能。在上面對CAN控制器的初始化中,為了簡化程序,設(shè)計時將驗(yàn)收濾波器設(shè)置為旁路。但在實(shí)際應(yīng)用中,應(yīng)根據(jù)需要對它進(jìn)行設(shè)置。事實(shí)上,讓它參與接收濾波的工作有助于改善節(jié)點(diǎn)接收信息的選擇性。CAN控制器初始化完成后,即可開始發(fā)送和接收信息。

3.3 發(fā)送過程

發(fā)送子程序主要負(fù)責(zé)節(jié)點(diǎn)報文的發(fā)送。發(fā)送時,用戶只需要將待發(fā)送的數(shù)據(jù)按特定的格式組合成一幀報文送入CAN控制器的發(fā)送緩存區(qū),然后啟動發(fā)送即可。當(dāng)然,在向發(fā)送緩沖區(qū)送報文之前,必須先做一些判斷。發(fā)送程序分為發(fā)送遠(yuǎn)程幀和數(shù)據(jù)幀兩種,其中遠(yuǎn)程幀無數(shù)據(jù)場。

3.4 接收過程

接收子程序主要負(fù)責(zé)節(jié)點(diǎn)報文的接收以及其它情況的處理。接收子程序相對要復(fù)雜一些。因?yàn)樵谔幚斫邮請笪牡倪^程中,同時也要對總線關(guān)閉、錯誤報警、接收溢出等情況進(jìn)行處理。CAN控制器報文的接收主要有兩種方式:中斷接收方式和查詢接收方式。如果對通信的實(shí)時性要求不是很強(qiáng),建議采用查詢接收方式。兩種接收方式的編程思想基本相同。

4 、結(jié)束語

智能節(jié)點(diǎn)可利用EasyJTAG仿真器進(jìn)行調(diào)試仿真,并可在實(shí)驗(yàn)環(huán)境下完成通訊功能。該方法與51系列單片機(jī)相比,其通信速度較高。因此,在此基礎(chǔ)上構(gòu)建CAN控制系統(tǒng)具有實(shí)際意義,但對于不同系統(tǒng),其軟件和硬件需要作相應(yīng)的改動。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628299
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15879

    瀏覽量

    175343
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1008

    瀏覽量

    83436
收藏 人收藏

    評論

    相關(guān)推薦

    基于LPC2292 和DS18B20 的測溫節(jié)點(diǎn)設(shè)計The Des ign of Temperature measure node B

    基于LPC2292 和DS18B20 的測溫節(jié)點(diǎn)設(shè)計 摘要:本文介紹了一種基于LPC2292 和數(shù)字式溫度傳感DS18B20 的測溫節(jié)點(diǎn)
    發(fā)表于 10-19 14:52

    向懂LPC2292的人請教請教!

    LPC2292CAN總線,沒有一個硬件(學(xué)校比較窮,不給經(jīng)費(fèi)),能進(jìn)行軟仿么?還有程序怎么寫,能否給寫個例程,學(xué)習(xí)學(xué)習(xí)!謝謝啦!
    發(fā)表于 05-02 18:45

    【CMSIS-DAP Mini仿真器申請】玩轉(zhuǎn)紅牛板、LPC2292

    申請理由:自己手里有一個STM32的紅牛板(老師給的)、LPC2292的開發(fā)版,資料都有。就是還沒有仿真器(肯定有下載功能了),有這樣的機(jī)會,想申請下,可以把紅牛板和LPC2292的程序跑一下,自己
    發(fā)表于 06-12 15:47

    基于LPC2292的手持JPEG圖像顯示設(shè)計

    基于LPC2292的手持JPEG圖像顯示設(shè)計
    發(fā)表于 09-23 14:49

    怎么利用LPC2292嵌入式微處理設(shè)計監(jiān)護(hù)系統(tǒng)?

    如何利用LPC2292嵌入式微處理設(shè)計監(jiān)護(hù)系統(tǒng)?
    發(fā)表于 07-31 06:10

    微控制LPC2292資料推薦

    微控制LPC2292資料下載內(nèi)容主要介紹了:LPC2292功能和特性LPC2292引腳功能LPC2292內(nèi)部方框圖
    發(fā)表于 03-31 07:40

    基于LPC2292的手持JPEG圖像顯示設(shè)計

            文章介紹了基于32 位ARM7 芯片LPC2292 實(shí)現(xiàn)的軟件JPEG 解碼算法及應(yīng)用了此算法的手持JPEG 圖像顯示的設(shè)計。文章從JPEG
    發(fā)表于 09-05 09:17 ?21次下載

    基于LPC2292CAN-以太網(wǎng)網(wǎng)關(guān)的設(shè)計

              本文介紹一個CAN 與以太網(wǎng)之間網(wǎng)關(guān)的設(shè)計;電路采用了以ARM7 為核心的LPC2292
    發(fā)表于 09-14 10:13 ?19次下載

    基于LPC2292的汽車智能組合儀

    0 引言     汽車儀表是司機(jī)與汽車之間進(jìn)行信息交流的窗口和界面,對于提高汽車儀表使用壽命,安全和經(jīng)濟(jì)行駛有著積極而重要的作用。本設(shè)計采用LPC2292嵌入式
    發(fā)表于 05-16 11:41 ?830次閱讀
    基于<b class='flag-5'>LPC2292</b>的汽車智能組合儀

    應(yīng)用LPC2292與DS18B20設(shè)計測溫節(jié)點(diǎn)系統(tǒng)

    本文為應(yīng)用LPC2292與DS18B20設(shè)計 測溫 節(jié)點(diǎn)系統(tǒng),給出了程序代碼。
    發(fā)表于 06-29 15:08 ?41次下載
    應(yīng)用<b class='flag-5'>LPC2292</b>與DS18B20設(shè)計測溫<b class='flag-5'>節(jié)點(diǎn)</b>系統(tǒng)

    基于LPC2292的USB接口適配器設(shè)計

    本文為基于LPC2292的USB接口適配器設(shè)計,解決了 CAN總線 PC機(jī)的通信問題,給出了軟硬件結(jié)構(gòu)設(shè)計方法。
    發(fā)表于 06-29 15:14 ?39次下載
    基于<b class='flag-5'>LPC2292</b>的USB接口適配器設(shè)計

    基于LPC2292的手持JPEG圖像顯示設(shè)計

    基于LPC2292的手持JPEG圖像顯示設(shè)計,很好的資料,快來學(xué)習(xí)吧
    發(fā)表于 02-18 13:52 ?0次下載

    ADS集成開發(fā)環(huán)境 EasyJTAG仿真器應(yīng)用

    ADS集成開發(fā)環(huán)境 EasyJTAG仿真器應(yīng)用 ADS集成開發(fā)環(huán)境 EasyJTAG仿真器應(yīng)用
    發(fā)表于 05-16 15:53 ?1次下載

    基于LPC2292微控制CAN控制實(shí)現(xiàn)車輛行駛監(jiān)控系統(tǒng)的設(shè)計

    選用帶有ARM7TDMI-S內(nèi)核的LPC2292微控制,可實(shí)現(xiàn)對車速、轉(zhuǎn)速信號、開關(guān)量信號以及水溫、剎車氣壓、輪胎壓力等模擬量信號的采集、處理以及數(shù)據(jù)的實(shí)時存儲和顯示,通過串口、USB接口可以
    的頭像 發(fā)表于 04-02 09:13 ?2413次閱讀
    基于<b class='flag-5'>LPC2292</b>微控制<b class='flag-5'>器</b>和<b class='flag-5'>CAN</b>控制<b class='flag-5'>器</b><b class='flag-5'>實(shí)現(xiàn)</b>車輛行駛監(jiān)控系統(tǒng)的設(shè)計

    基于LPC2292CAN總線USB接口適配器的設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于LPC2292CAN總線USB接口適配器的設(shè)計.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 16:53 ?1次下載
    基于<b class='flag-5'>LPC2292</b>的<b class='flag-5'>CAN</b>總線USB接口適配器的設(shè)計