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

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

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

基于8位高性能微控制器P87C591實(shí)現(xiàn)嵌入式CAN控制器的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:世界電子元器件 ? 作者:鄧柯軍;李偉 ? 2020-04-10 08:05 ? 次閱讀

引言

現(xiàn)場(chǎng)總線技術(shù)是一種基于現(xiàn)場(chǎng)設(shè)備之間進(jìn)行數(shù)據(jù)通訊的新型總線系統(tǒng),它綜合了計(jì)算機(jī)技術(shù)、數(shù)字通訊技術(shù)、自動(dòng)控制技術(shù)、網(wǎng)絡(luò)技術(shù)和智能儀表等各種技術(shù)手段,從根本上突破了傳統(tǒng)的“點(diǎn)對(duì)點(diǎn)”式的模擬信號(hào)或數(shù)字—模擬信號(hào)控制的局限性,構(gòu)成了一種全分散、全數(shù)字化、智能化雙向、互連、多變量、多結(jié)點(diǎn)的通信控制系統(tǒng)

CAN總線是德國(guó)BoSCH公司為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通訊協(xié)議。CAN總線以其高性能、高可靠性及其獨(dú)特的設(shè)計(jì)越來(lái)越受到人們的重視,并被公認(rèn)為是汽車電控系統(tǒng)中最有前途的總線之一。奔馳、寶馬、大眾等一些國(guó)際著名汽車生產(chǎn)廠家已經(jīng)在各自的產(chǎn)品中采用了CAN總線技術(shù)。目前,國(guó)內(nèi)的汽車生產(chǎn)廠家也已經(jīng)開(kāi)始重視該項(xiàng)技術(shù)。毫無(wú)疑問(wèn),CAN總線技術(shù)將是今后車載網(wǎng)絡(luò)領(lǐng)域的主流協(xié)議標(biāo)準(zhǔn)。

P87C591芯片的特點(diǎn)

P87C591是一個(gè)單片8位高性能微控制器,除了80C51的標(biāo)準(zhǔn)特性之外,器件還為實(shí)際應(yīng)用提供許多專用的硬件功能。片中帶16K字節(jié)內(nèi)部程序存儲(chǔ)器,可外部擴(kuò)展到64K字節(jié);512字節(jié)片內(nèi)數(shù)據(jù)RAM,可外部擴(kuò)展到64K字節(jié);并且有3個(gè)16位定時(shí)/計(jì)數(shù)器T0, T1(標(biāo)準(zhǔn)80C51)和附加的T2(捕獲&比較),2個(gè)8位分辨率的脈寬調(diào)制輸出(PWM),包含一個(gè)看門狗定時(shí)器T3。P87C591中包括4個(gè)中斷優(yōu)先級(jí),l5個(gè)中斷源,為編寫高效率的程序軟件提供了強(qiáng)大的硬件支持。

P87C591是NXP半導(dǎo)體公司推出的帶有在片CAN控制器SJA 1000的新型微控制器。它完全履行CAN 2.0規(guī)范并提供一個(gè)獨(dú)立CAN控制器的軟件移植路徑。其中包括增強(qiáng)型驗(yàn)收濾波器、支持系統(tǒng)維護(hù)、診斷、系統(tǒng)優(yōu)化以及接收FIFO特性。該嵌入式CAN控制器包括了具有CAN的擴(kuò)充特性。該嵌入式CAN控制器包括了下列功能模塊:

① CAN內(nèi)核模塊根據(jù)CAN 2. 0規(guī)范控制CAN幀的接收和發(fā)送。

② CAN接口包含5個(gè)實(shí)現(xiàn)CPU與CAN控制器連接的特殊功能寄存器。

③ CAN控制器的發(fā)送緩沖區(qū)能夠保存一個(gè)完整的CAN信息格式。只要通過(guò)CPU啟動(dòng)發(fā)送,信息字節(jié)就從發(fā)送緩沖區(qū)傳輸?shù)紺AN內(nèi)核模塊。

④ 所有驗(yàn)收濾波器驗(yàn)收的接收數(shù)據(jù)都保存在接收FIFO中。取決于操作模式和數(shù)據(jù)長(zhǎng)度的不同,最多可存放21個(gè)CAN信息。

⑤ 當(dāng)接收一個(gè)信息時(shí),CAN內(nèi)核模塊將串行位流轉(zhuǎn)換成并行數(shù)據(jù)輸入到驗(yàn)收濾波器,通過(guò)該可編程濾波器,P87C591確定實(shí)際接收到的信息。

P87C591微控制器內(nèi)部總線通過(guò)80C51微處理器接口與PeIiCAN相連。通過(guò)CANADR(地址)、CANDAT(數(shù)據(jù))、CANMOD(模式)、CANSTA(狀態(tài))和CANCON(控制)5個(gè)特殊功能寄存器對(duì)PeIiCAN寄存器和RAM區(qū)進(jìn)行訪問(wèn)。圖1為P87C591的功能框圖。

基于8位高性能微控制器P87C591實(shí)現(xiàn)嵌入式CAN控制器的設(shè)計(jì)

基于P87C591的CAN總線控制系統(tǒng)的設(shè)計(jì)研究

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

本文所設(shè)計(jì)的控制系統(tǒng)的CAN總線節(jié)點(diǎn)硬件電路由微處理器(P87C591)、CAN總線通信接口收發(fā)器(NXP公司的82C250)和功能裝置(傳感器、執(zhí)行器等)組成。如 圖2所示為控制系統(tǒng)CAN總線節(jié)點(diǎn)通訊相關(guān)的硬件電路原理圖。由于P87C591本身含有CAN模塊,因此不需要外加CAN控制器,所需要的外部元件僅僅是一個(gè)晶振加兩個(gè)電容,一個(gè)連接到復(fù)位腳的電容(使用片內(nèi)復(fù)位電路)以及一個(gè)收發(fā)器用于將P87C591連接到CAN總線。

為了防止干擾,在CAN總線節(jié)點(diǎn)硬件設(shè)計(jì)上采取了以下措施:

①82C250與CAN總線的接口部分采取了抗干擾措施。82C250的CANH和CANL引腳各自通過(guò)一個(gè)5? 的電阻與CAN總線相連,電阻可起到一定的限流作用,保護(hù)82C250免受過(guò)流的沖擊。CANH和CANL與地之間并聯(lián)了兩個(gè)30pF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射能力。另外在兩根CAN總線接入端與地之間分別反接了一個(gè)保護(hù)二極管,當(dāng)CAN總線有較高的負(fù)電壓時(shí),通過(guò)二極管的短路可起到一定的過(guò)壓保護(hù)作用。

② 總線兩端應(yīng)接有兩個(gè)120?電阻,對(duì)于匹配總線阻抗起著重要的作用,忽略掉它們會(huì)使數(shù)據(jù)通信的抗干擾性及可靠性大大降低甚至無(wú)法通信。

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

在CAN總線程序設(shè)計(jì)中,初始化程序是整個(gè)軟件設(shè)計(jì)中的重點(diǎn)和難點(diǎn),它直接關(guān)系到系統(tǒng)能否正常工作。對(duì)CAN 控制器進(jìn)行初始化,實(shí)際上就是對(duì)集成CAN控制器的P87C591芯片中的寄存器進(jìn)行初始化設(shè)置,并對(duì)報(bào)文接收緩沖區(qū)進(jìn)行設(shè)置。內(nèi)容包括:操作模式、TXDC輸出管腳的配置、總線定時(shí)、驗(yàn)收濾波器、中斷等。CAN控制器初始化流程圖如圖3所示。

對(duì)于CAN控制器的初始化,只與表1中所列寄存器相關(guān)。大多數(shù)CAN寄存器具有一個(gè)方便的恢復(fù)特性,在硬件復(fù)位或使CAN控制器進(jìn)入復(fù)位模式后用戶配置可保持不變(表1中標(biāo)注“不變”)。

CAN初始化子程序如下:

void init_can_controller(void)

{

/*進(jìn)入CAN控制器復(fù)位模式*/

CANMOD=0x01; /*將CAN控制器設(shè)置為復(fù)位模式以啟動(dòng)初始化*/

/*TXDC Port (P1.1)配置*/

P1M2=P1M2|0x02; /*管腳TXDC設(shè)置為推挽模式*/

/*配置與CAN有關(guān)的中斷*/

CANSTA=0x03; /*使能接收和發(fā)送中斷*/

/*CAN位定時(shí)的配置*/

CANADR=BTR0; /*BTR0和BTR1編程為100kbit/s,在16MHz條件下*/

CANDAT=0x00;

CANADR=BTR1;

CANDAT=0x14; /*用戶可根據(jù)具體的CAN網(wǎng)絡(luò)來(lái)調(diào)整BTR0、BTR1的參數(shù)*/

/*驗(yàn)收濾波器1配置為接收ID=10000000XXX*/

CANADR=ACR0; /*將地址設(shè)置到驗(yàn)收代碼寄存器0(BANK1)*/

CANDAT=0x80; /*驗(yàn)收代碼0用于濾波*/

CANADR=AMR0; /*將地址設(shè)置到驗(yàn)收屏蔽寄存器0(BANK1)*/

CANDAT=0x00; /*BANKl:與驗(yàn)收屏蔽0有關(guān)*/

CANDAT=0xFF; /*BANKl:與驗(yàn)收屏蔽1無(wú)關(guān),允許任何數(shù)據(jù)通過(guò)濾波器*/

CANDAT=0xFF; /*BANKl:與驗(yàn)收屏蔽2無(wú)關(guān),允許任何數(shù)據(jù)通過(guò)濾波器*/

CANDAT=0xFF; /*BANKl:與驗(yàn)收屏蔽3無(wú)關(guān),允許任何數(shù)據(jù)通過(guò)濾波器*/

CANADR=ACFMOD; /*將地址設(shè)置到ACF模式寄存器*/

CANDAT=0xFF; /*單驗(yàn)收濾波器使用29位ID(EFF)*/

CANADR=ACFPRIO; /*將地址設(shè)置到ACF優(yōu)先級(jí)寄存器*/

CANDAT=0xFF; /*所有濾波器都為高優(yōu)先級(jí)*/

CANADR=ACFEN; /*將地址設(shè)置到ACF使能寄存器*/

CANDAT=0x01; /*使能Bankl的驗(yàn)收濾波器*/

/*選擇操作模式退出CAN控制器復(fù)位模式*/

CANMOD=0x00; /*使CAN控制器進(jìn)入操作模式*/

}

結(jié)束語(yǔ)

本 文從硬件和軟件的角度對(duì)內(nèi)嵌CAN控制器(SJA1000)的P87C591進(jìn)行了詳細(xì)的介紹,不僅給出了P87C591的CAN總線硬件電路原理圖,還給出了CAN總線的初始化子程序。P87C591是個(gè)高性能的CAN微控制器,可用于汽車和通用的工業(yè)應(yīng)用。尤其在汽 車 車身控制系統(tǒng)中它可以發(fā)揮很好的作用,通過(guò)使用該系統(tǒng)進(jìn)行CAN總線的車身控制,可以簡(jiǎn)化線路,減少車內(nèi)線束連接的復(fù)雜性,保證信號(hào)無(wú)干擾、實(shí)時(shí)的傳輸,并且實(shí)現(xiàn)系統(tǒng)實(shí)時(shí)診斷、測(cè)試和報(bào)警功能。隨著汽車電子技術(shù)的發(fā)展,其在汽車電控系統(tǒng)中必將得到更廣泛的應(yīng)用。

責(zé)任編輯:gt


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

    關(guān)注

    48

    文章

    7565

    瀏覽量

    151592
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19142

    瀏覽量

    306019
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2756

    瀏覽量

    463891
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何為嵌入式應(yīng)用選擇合適的微控制器

    嵌入式應(yīng)用選擇合適的微控制器可能是一項(xiàng)至關(guān)重要的任務(wù)。不僅有各種各樣的技術(shù)選擇需要考慮,還有商業(yè)案例問(wèn)題,如價(jià)格和交付時(shí)間可能會(huì)削弱項(xiàng)目。在項(xiàng)目或嵌入式系統(tǒng)應(yīng)用程序開(kāi)始時(shí),很有可能在嵌入式
    發(fā)表于 12-21 17:58

    STM8微控制器系列產(chǎn)品

    STM8系列微控制器,8微控制器平臺(tái)基于高性能8
    發(fā)表于 07-10 07:00

    STM32F030C8T6微控制器有哪些性能

    意法半導(dǎo)體MCU STM32F030C8T6微控制器集成了以48 MHz頻率運(yùn)行的高性能Arm內(nèi)核M0 32RISC內(nèi)核,高速嵌入式存儲(chǔ)
    發(fā)表于 12-09 07:20

    GD32E5高性能微控制器

    GD32E5高性能微控制器,采用臺(tái)積電低功耗40納米(40nm)嵌入式閃存工藝構(gòu)建,具備業(yè)界領(lǐng)先的處理能力、功耗效率、連接特性和經(jīng)濟(jì)的開(kāi)發(fā)成本。推動(dòng)嵌入式開(kāi)發(fā)向高精度工業(yè)
    發(fā)表于 12-16 08:13

    基于P87C591CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì)

    基于P87 C591CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì)Design of CAN System Intelligent Node Based on P87
    發(fā)表于 03-30 16:55 ?45次下載

    P87C591內(nèi)嵌CAN控制器的應(yīng)用設(shè)計(jì)

    獨(dú)立的CAN 控制器芯片需要外接一個(gè)微處理,接受外部CPU 的控制才能運(yùn)行。如果微處理內(nèi)部帶有CAN
    發(fā)表于 04-15 09:32 ?16次下載

    低成本嵌入式多媒體微控制器的設(shè)計(jì)與實(shí)現(xiàn)

    本文針對(duì)低成本嵌入式應(yīng)用設(shè)計(jì)實(shí)現(xiàn)了一個(gè)介于微控制器(MCU)與數(shù)字信號(hào)處理(DSP)之間的多媒體功能強(qiáng)化的微控制器架構(gòu)(ME-MCU),它
    發(fā)表于 08-19 11:11 ?21次下載

    基于P87C591CAN總線超聲測(cè)距系統(tǒng)設(shè)計(jì)

    基于P87C591CAN 總線超聲測(cè)距系統(tǒng)設(shè)計(jì)作者: 齊齊哈爾大學(xué) 董晶 劉樹(shù)東戴學(xué)豐 紹林來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用摘要介紹一種以Philips 公司的P87C591 作為超聲
    發(fā)表于 02-06 12:23 ?32次下載

    CAN 2.0B 標(biāo)準(zhǔn)新型16 微控制器

    CAN 2.0B 標(biāo)準(zhǔn)新型16 微控制器 飛利浦半導(dǎo)體日前宣布推出高性能16 XA 微控制器
    發(fā)表于 03-20 14:24 ?32次下載

    基于P87C591的信號(hào)采集節(jié)點(diǎn)的設(shè)計(jì)

    介紹了CAN總線和P87C591單片機(jī)的特點(diǎn),給出了基于P87C591單片機(jī)的信號(hào)采集節(jié)點(diǎn)的軟、硬件設(shè)計(jì),指出了硬件電路設(shè)計(jì)中應(yīng)注意的問(wèn)題,在軟件設(shè)計(jì)中重點(diǎn)介紹了節(jié)點(diǎn)初始化、報(bào)文發(fā)送
    發(fā)表于 12-07 14:10 ?17次下載

    基于P87C591CAN總線超聲測(cè)距系統(tǒng)設(shè)計(jì)方案

    基于P87C591CAN總線超聲測(cè)距系統(tǒng)設(shè)計(jì)方案  介紹一種以Philips公司的P87C591作為超聲波傳感控制核心及
    發(fā)表于 03-29 15:08 ?1137次閱讀
    基于<b class='flag-5'>P87C591</b>的<b class='flag-5'>CAN</b>總線超聲測(cè)距系統(tǒng)設(shè)計(jì)方案

    基于P87C591CAN總線信號(hào)采集節(jié)點(diǎn)的設(shè)計(jì)

      介紹了CAN總線和P87C591單片機(jī)的特點(diǎn),給出了基于P87C591單片機(jī)的信號(hào)采集節(jié)點(diǎn)的軟、硬件設(shè)計(jì),指出了硬件電路設(shè)計(jì)中應(yīng)注意的問(wèn)題,在軟件設(shè)計(jì)中重點(diǎn)介紹了節(jié)點(diǎn)初始化、報(bào)文發(fā)
    發(fā)表于 12-10 10:04 ?2633次閱讀
    基于<b class='flag-5'>P87C591</b>的<b class='flag-5'>CAN</b>總線信號(hào)采集節(jié)點(diǎn)的設(shè)計(jì)

    P8xC591_微控制器在_CAN_中的應(yīng)用

    P8xC591 是一個(gè)高性能CAN 微控制器 可用于汽車和通用的工業(yè)應(yīng)用 除了具有 Philips Rx+內(nèi) 核 的增強(qiáng)特性之外 器件還為這些應(yīng)用提供許多專用的硬件功能。
    發(fā)表于 01-19 15:28 ?10次下載

    高性能16XA微控制器系列

      飛利浦半導(dǎo)體日前宣布推出高性能16XA微控制器系列的新成員XA-C3,專門用于“控制器區(qū)域網(wǎng)路(C
    發(fā)表于 09-20 12:21 ?5次下載

    CAN 控制器的單片8 微控制器

    CAN 控制器的單片8 微控制器
    發(fā)表于 09-22 10:06 ?8次下載
    帶<b class='flag-5'>CAN</b> <b class='flag-5'>控制器</b>的單片<b class='flag-5'>8</b> <b class='flag-5'>位</b><b class='flag-5'>微控制器</b>