• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于TMS320F2812和USB100的CAN-USB總線通信系統(tǒng)設(shè)計(jì)

    基于TMS320F2812和USB100的CAN-USB總線通信系統(tǒng)設(shè)計(jì)

    作者: 時(shí)間:2011-03-31 來源:網(wǎng)絡(luò) 收藏

    2.2 eCAN模塊應(yīng)用
    由于采用片上增強(qiáng)型控制器eCAN,所以CAN模塊硬件電路極為簡(jiǎn)單,只需將F2812的RX和TX引腳經(jīng)過電平轉(zhuǎn)換器件連接至CAN收發(fā)器PCA82C250的TXD和RXD引腳,并以F2812作為CAN的微處理器,進(jìn)行實(shí)時(shí)數(shù)據(jù)收發(fā)。其硬件分為2層:第一層,CAN與F2812接口層;第二層,F(xiàn)2812與外圍器件的信息處理。CAN收發(fā)器采用低廉的PCA82C250,的擴(kuò)展性強(qiáng),至少可連接110個(gè)節(jié)點(diǎn),其引腳8(Rs)用于選擇工作模式,高速工作時(shí)上接一個(gè)斜率電阻,根據(jù)速度可適當(dāng)調(diào)整,一般在16~140 Kb/s之間。

    3 系統(tǒng)軟件
    3.1 DSP程序
    本系統(tǒng)中,微處理器主要完成2個(gè)功能:一是對(duì)eCAN控制器進(jìn)行初始化;二是完成上位機(jī)USB接口和下位機(jī)CAN接口的數(shù)據(jù)。USB接口通過查詢的TXE和RXF引腳的狀態(tài)來完成上位機(jī)與微處理器F2812的數(shù)據(jù)交換,CAN接口的通信主要包括eCAN模塊的消息發(fā)送和接收。
    F2812上電復(fù)位后,必須對(duì)軟件進(jìn)行初始化,其中最重要的是對(duì)eCAN模塊初始化。消息發(fā)送時(shí),需要初始化發(fā)送郵箱,包括向寄存器CANME使能相應(yīng)郵箱、設(shè)置CANMD方向、通過MBOXn.MSGID(n=O~31)設(shè)置發(fā)送郵箱的ID等操作,初始化后向消息數(shù)據(jù)寄存器ECanaMboxes.Mboxn.MDR寫入上位機(jī)USB接口發(fā)送的數(shù)據(jù),然后設(shè)置EcanaRegs.CANTRS.bit.TRSn為1請(qǐng)求發(fā)送消息,等待傳輸響應(yīng)位TA=1,表示消息成功發(fā)送,并產(chǎn)生發(fā)送中斷,本系統(tǒng)通過發(fā)送中斷子程序統(tǒng)計(jì)發(fā)送消息個(gè)數(shù)。消息接收時(shí),同樣需要初始化相應(yīng)的接收郵箱,完成初始化后,當(dāng)下位機(jī)通過CAN接口發(fā)送數(shù)據(jù)時(shí),如果eCAN模塊的接收郵箱的ID與下位機(jī)消息的ID匹配,并成功接收,則相應(yīng)的接收消息掛起寄存器(CANRMP)的相應(yīng)位被置1;若CPU開放了eCAN接收中斷,則同時(shí)也產(chǎn)生接收消息中斷,在接收中斷子程序,可以將相應(yīng)的消息數(shù)據(jù)寄存器的內(nèi)容發(fā)給模塊的寫地址,同時(shí)需要查詢的TXE端是否允許向USB端口發(fā)送數(shù)據(jù)。
    上位機(jī)通過USB接口發(fā)送數(shù)據(jù),下位機(jī)通過CAN接口接收數(shù)據(jù)基本步驟為:
    (1)F2812初始化通用IO口以及eCAN控制器;
    (2)F2812檢測(cè)USB模塊是否有來自上位機(jī)的數(shù)據(jù);
    (3)若有,將數(shù)據(jù)讀入配置好的eCAN發(fā)送郵箱;
    (4)啟動(dòng)配置好的eCAN發(fā)送郵箱;
    (5)當(dāng)郵箱發(fā)送消息給下位機(jī)成功后,會(huì)進(jìn)入eCAN發(fā)送中斷程序;
    (6)清除相應(yīng)標(biāo)志后退出中斷程序,繼續(xù)等待上位機(jī)發(fā)送數(shù)據(jù)。
    上位機(jī)通過USB接口接收數(shù)據(jù),下位機(jī)通過CAN接口發(fā)送數(shù)據(jù)基本步驟為:
    (1)F2812初始化通用IO口以及eCAN控制器;
    (2)當(dāng)下位機(jī)通過CAN接口發(fā)送數(shù)據(jù)時(shí),根據(jù)郵箱標(biāo)識(shí)符,已配置好的eCAN接收郵箱收到下位機(jī)數(shù)據(jù),同時(shí)進(jìn)入eCAN接收中斷子程序;
    (3)F2812檢測(cè)USB模塊內(nèi)部緩沖區(qū)是否允許向上位機(jī)發(fā)送數(shù)據(jù),若禁止,則等待;
    (4)若允許向上位機(jī)發(fā)送數(shù)據(jù),則將數(shù)據(jù)寫入上位機(jī);
    (5)清除相應(yīng)標(biāo)志后退出中斷程序,繼續(xù)等待下位機(jī)發(fā)送數(shù)據(jù)。圖2為系統(tǒng)軟件流程圖。

    本文引用地址:http://www.czjhyjcfj.com/article/156493.htm

    2.JPG



    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 印江| 平南县| 西华县| 平阳县| 长治市| 盐源县| 大竹县| 长沙县| 永靖县| 富蕴县| 松潘县| 石河子市| 罗源县| 邮箱| 绥棱县| 中卫市| 海林市| 文化| 江津市| 寻甸| 望城县| 遵义县| 新民市| 舟曲县| 会理县| 梁河县| 仪征市| 鹤岗市| 察隅县| 琼海市| 罗甸县| 三台县| 固阳县| 阿克陶县| 永丰县| 贡觉县| 英山县| 花莲市| 浦东新区| 炉霍县| 乌鲁木齐市|