• 摘  要:<">

    小视频免费在线观看_夜夜b_男女隐私免费视频_国产一级性生活视频_久久综合入口_精品国内视频

  • <tt id="jllx3"><em id="jllx3"></em></tt>

    技術(shù)頻道

    CAN總線控制器的初始化程序


    摘 要:介紹了can總線控制器sja1000芯片,并給出用c51語(yǔ)言編寫sja1000總線控制器的初始化程序,方便使用者學(xué)習(xí)和掌握。

    關(guān)鍵詞:sja1000;can總線;c51;寄存器

    0 引 言

    隨著自動(dòng)化底層設(shè)備通信的需要,使現(xiàn)場(chǎng)總線技術(shù)得到了迅速的發(fā)展,各廠家都紛紛推出自己的總線控制器。sja1000 就是philips公司推出的一種高性能的can總線控制器,它得到了廣泛的應(yīng)用,但是有關(guān)sja1000初始化的文章比較少見,介紹的程序也不完全,這給使用者增加了難度。為了方便使用者掌握和使用can總線,本文作者成功地運(yùn)用c51語(yǔ)言初始化sja1000為核心的can總線控制器,縮短了程序開發(fā)周期,提高了工作效率。

    1 sja1000的新功能與內(nèi)部結(jié)構(gòu)

    1.1 sja1000的主要新功能

    sja1000是philips公司早期can總線控制器pca82c200的替代品,功能更強(qiáng)大,與pca82c200相比,具有許多優(yōu)點(diǎn),詳見文獻(xiàn)[4].

    1.2 sja1000的內(nèi)部寄存器

    sja1000的寄存器和管腳配置允許它使用于各種各樣的集成的或分立的can 收發(fā)器,這使不同微控制器之間的接口能夠被靈活運(yùn)用。若要正確、靈活的運(yùn)用sja1000,就必須了解內(nèi)部寄存器的地址、功能和作用。sja1000內(nèi)部寄存器的結(jié)構(gòu)如表1所示(具體每一位的作用,請(qǐng)參閱文獻(xiàn)[2]).

    1.3 sja1000與89c52的連線原理

    為了連接到主控制器,sja1000提供一個(gè)復(fù)用的地址/數(shù)據(jù)總線和附加的讀/寫控制信號(hào),見圖1.sja1000能被看作外圍存儲(chǔ)器并為主控制器映射i/o設(shè)備。為了保證系統(tǒng)的同步,本電路使用了一個(gè)24 mhz的晶振作為sja1000的振蕩器,用它的7號(hào)引腳(clkout)作為89c52的時(shí)鐘脈沖。本文中sja1000的片選由微控制器的p2.7口控制,其內(nèi)部寄存器的地址由p0口和p2口共同來決定,p0口為低8位,p2口為高8位。

    圖1 原理接線圖

    2 程 序

    c語(yǔ)言是一種常用的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既有高級(jí)語(yǔ)言的各種特征,又能直接操作系統(tǒng)硬件,而且可以進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì),用c語(yǔ)言編寫的程序很容易移植。近年來出現(xiàn)的各種專為微型計(jì)算機(jī)設(shè)計(jì)的c語(yǔ)言編譯器,如美國(guó)franklin軟件公司推出的franklin c51,德國(guó)keil公司推出keil c軟件,都是高性能的c編譯器,它編譯的目標(biāo)代碼簡(jiǎn)潔且運(yùn)行速度高。后者是現(xiàn)在比較流行的軟件,它深受單片機(jī)開發(fā)人員的喜愛。下面就以keil c51為平臺(tái),系統(tǒng)的介紹如何用c51語(yǔ)言對(duì)sja1000 can總線控制器進(jìn)行初始化。

    從圖1可以看到,主控制器89c52的p0.0-p0.7直接與sja1000的ad0-ad7相連,主控制器既要傳送地址,又要傳送數(shù)據(jù),就必須對(duì)p0口進(jìn)行分時(shí)控制,而sja1000的ad0-ad7正好提供一個(gè)復(fù)用的地址/數(shù)據(jù)總線和附加的讀/寫控制信號(hào)。

    sja1000由主控制器的程序進(jìn)行功能配置和激活,因此sja1000能滿足不同屬性的can總線系統(tǒng)的要求。主控制器89c52和sja1000之間的數(shù)據(jù)交換經(jīng)過一系列的寄存器控制段和一個(gè)ram 信息緩沖器完成,對(duì)于主控制器來說,構(gòu)成發(fā)送和接收

    sja1000初始化流程圖

    緩沖器的寄存器和一部份ram的地址窗口,就象是外圍的寄存器。

    sja1000初始化的流程圖如圖2所示。

    為了讓工程技術(shù)人員更加深入的學(xué)習(xí)和使用can總線,這里完整的給出了sja1000的初始化程序。

    程序如下:

    #define crxbyte[0x8000] // 控制寄存器地址

    #define cmrxbyte[0x8001] // 命令寄存器地址

    #define srxbyte[0x8002] // 狀態(tài)寄存器地址

    #define irxbyte[0x8003] // 中斷寄存器地址

    #define acrxbyte[0x8004] // 驗(yàn)收碼寄存器地址

    #define amrxbyte[0x8005] // 驗(yàn)收屏蔽寄存器地址

    #define btr0xbyte[0x8006] // 總線定時(shí)寄存器0地址

    #define btr1xbyte[0x8007] // 總線定時(shí)寄存器1地址

    #define ocrxbyte[0x8008] // 輸出控制寄存器地址

    #define trxbyte[0x8009] // 測(cè)試寄存器地址

    #define transbuffer1xbyte[0x800a] // 發(fā)送緩沖器

    #define transbuffer2xbyte[0x800b]

    #define transbuffer3xbyte[0x800c]

    #define transbuffer4xbyte[0x800d]

    #define transbuffer5xbyte[0x800e]

    #define transbuffer6xbyte[0x800f]

    #define transbuffer7xbyte[0x8010]

    #define transbuffer8xbyte[0x8011]

    #define transbuffer9xbyte[0x8012]

    #define transbuffer10xbyte[0x8013]

    #define rxbuffer1xbyte[0x8014] // 接收緩沖器

    #define rxbuffer2xbyte[0x8015]

    #define rxbuffer3xbyte[0x8016]

    #define rxbuffer4xbyte[0x8017]

    #define rxbuffer5xbyte[0x8018]

    #define rxbuffer6xbyte[0x8019]

    #define rxbuffer7xbyte[0x801a]

    #define rxbuffer8xbyte[0x801b]

    #define rxbuffer9xbyte[0x801c]

    #define rxbuffer10xbyte[0x801d]

    #define cdrxbyte[0x801f] // 時(shí)鐘頻分寄存器

    #include “at89x52.h”

    #include “stdio.h”

    #include “math.h”

    #include “intrins.h”

    #include “ctype.h”

    #include “mylib.h”

    #include “absacc.h”

    void init&shy;_can(void) // 初始化sja1000主控制器子函數(shù)

    {

    cr=0x01; // 控制寄存器為復(fù)位

    cdr=0; // 設(shè)置時(shí)鐘分頻器

    acr=0; // 驗(yàn)收碼寄存器

    amr=0xff; // 驗(yàn)收屏蔽寄存器

    btr0=0x31; // 總線定時(shí)寄存器0

    btr1=0x18; &

    文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

    主站蜘蛛池模板: 中文字幕在线国产 | 成人精品一区二区三区校园激情 | 青青草自拍视频 | 亚洲一区二区三区中文字幕 | 欧美日韩成人在线播放 | 黄色网址免费看 | 精品国产青草久久久久福利 | 精品国产乱码久久久久久闺蜜 | 国产亚洲精品精品国产亚洲综合 | 日韩午夜视频在线 | 一区二区视频网站 | 91成人在线视频 | 久久久久久毛片精品免费不卡 | 91精品成人久久 | 懂色av蜜臀av粉嫩av分享吧 | 99精品一区二区三区 | 免费黄网站在线观看 | 久久av资源网 | 91精品国产高清一区二区三区 | aaaa黄色片 | 久久一区二区国产 | 欧美一区 | 色婷婷成人影院 | 国产日韩欧美 | 国产一区二区三区免费在线观看 | 能在线看的av | 亚洲国产成人av | 国产日韩欧美日韩 | 亚洲精品一区二区三区在线 | 欧美日韩在线免费 | 国产一区二区三区在线看 | av亚洲在线| 九九在线视频 | 欧美成人自拍 | 伊人网综合| 成人在线免费观看小视频 | 亚洲精品成人av | 日韩精品免费一区二区夜夜嗨 | 日韩99| 国产午夜精品一区二区 | 久久久久久国产精品 |