新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線及其在UPS網(wǎng)絡(luò)監(jiān)控系統(tǒng)中的應(yīng)用

        CAN總線及其在UPS網(wǎng)絡(luò)監(jiān)控系統(tǒng)中的應(yīng)用

        作者: 時(shí)間:2012-06-09 來源:網(wǎng)絡(luò) 收藏

        鑒于本系統(tǒng)的要求,ups1、ups2、ups3及顯示監(jiān)控模塊的控制芯片均采用ti公司生產(chǎn)的tms320f240dsp,can控制器采用philip公司生產(chǎn)的sja1000t。

        3.1 dsp與can總線控制器硬件接口

        dsp與can控制器sja1000t之間的接口電路如圖3所示。

        sja1000t的存儲空間映射在微控制器dsp的i/o空間,對sja1000存儲空間的尋址必須用指令in和out。在intel方式下讀寫sja1000時(shí),地址和數(shù)據(jù)是分時(shí)傳送的,地址在前,數(shù)據(jù)在后。根據(jù)dsp對外設(shè)端口的邏輯時(shí)序及sja1000t要求的讀寫邏輯時(shí)序,除了dsp的基本讀寫引腳we、w/r外,我們還選用a14、a15、is為控制腳,控制sja1000地址空間和數(shù)據(jù)空間的選通,當(dāng)a15=1、a14=0時(shí)為地址空間,選通ale和cs;當(dāng)a15=1、a14=0時(shí)為數(shù)據(jù)空間,此時(shí)對于dsp來說,寫則選通sja1000t的wr和cs, 讀則選通sja1000t的rd/w和cs,從而完成了dsp與sja1000t之間的數(shù)據(jù)傳遞。

        另外,由于接收數(shù)據(jù)采用中斷方式,故在dsp上選用外部中斷xint1作為中斷源,而sja1000t是低有效,故通過一個(gè)上拉電阻接vcc。

        4 can通信網(wǎng)絡(luò)軟件設(shè)計(jì)

        單個(gè)can節(jié)點(diǎn)通信的功能主要是將本節(jié)點(diǎn)的數(shù)據(jù)信息傳送給can通信網(wǎng)絡(luò)其它節(jié)點(diǎn),以及接收網(wǎng)絡(luò)上其它節(jié)點(diǎn)傳送來的信息。can總線單個(gè)節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括三大部分:can節(jié)點(diǎn)初始化、信息的發(fā)送和信息的接收。設(shè)計(jì)時(shí)將can初始化、發(fā)送信息(數(shù)據(jù)和遠(yuǎn)程幀)設(shè)計(jì)為子程序,發(fā)送信息采用查詢方式,接收信息采用中斷方式。

        (1) 初始化子程序

        sja1000的初始化只有在復(fù)位模式下才可以進(jìn)行,初始化主要包括工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器amr和接收代碼寄存器acr的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器ier的設(shè)置等。在完成sja1000的初始化設(shè)置以后,sja1000就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù),其源程序如下:
        data_can .set 0c000h
        dress_can .set 8000h
        can_start:
        ldp #4
        splk #0,temp ;控制寄存器(mod)設(shè)置
        out temp,dress_can
        splk #1bh, temp ;復(fù)位模式
        out temp,data_can ;sja1000進(jìn)行初始化
        splk #0, temp
        out temp,dress_can
        in temp,data_can
        bit temp,bit0
        bcnd can_reset,ntc
        splk #4,canflag ;設(shè)置驗(yàn)收代碼寄存器
        out temp,dress_can
        splk #01h,canflag
        out temp,data_can
        splk #5, temp ;設(shè)置驗(yàn)收屏蔽寄存器
        out temp,dress_can
        splk #000h, temp
        out temp,data_can
        splk #31, temp ;設(shè)置時(shí)鐘分頻寄存器(cdr)
        out temp,dress_can
        splk #48h, temp ;選擇basiccan模式,關(guān)
        ;閉時(shí)鐘(clkout)



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 安丘市| 泗阳县| 腾冲县| 大埔县| 乐昌市| 万山特区| 常德市| 增城市| 华池县| 宕昌县| 左云县| 贺州市| 波密县| 丰原市| 吉首市| 罗平县| 民丰县| 巍山| 舒城县| 丹棱县| 合阳县| 廉江市| 丰城市| 讷河市| 萝北县| 白银市| 根河市| 彩票| 文山县| 西宁市| 成武县| 平阳县| 大厂| 双峰县| 佳木斯市| 江津市| 临江市| 天等县| 临漳县| 通州市| 松溪县|