新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于DSPIC30F4011單片機的CAN總線通信設計

        基于DSPIC30F4011單片機的CAN總線通信設計

        作者: 時間:2011-03-03 來源:網絡 收藏

          3 程序設計

          在程序設計時, 可把一端作為發送數據端,另一端作為數據接收端。信息從模塊發送到通常是由CAN模塊自動完成的。發送程序只需把發送的信息幀送到CAN的發送緩沖區,然后啟動發送命令即可。發送程序可采用查詢方式。作為發送端, 也可對其發送緩沖寄存器進行賦值, 以作為發送的信息, 具體方法如下:

          C1TX0B1 = 0x5555;

          C1TX0B2 = 0x5555;

          C1TX0B3 = 0x5555;

          C1TX0B4 = 0x5501;

          之后應將這些數據發送到CAN上, 并將報文發送優先級設成最高級, 以便于數據發送。

          信息從CAN總線到CAN接收緩沖區也是由CAN控制器自動完成的。接收程序只需從接收緩沖區讀取要接收的信息即可。接收程序同樣可采用查詢方式。接收緩沖器會*總線是否有進入的報文, 如發現總線上有報文, 即接收報文。接收端程序中可定義四個變量, 并把接收緩沖寄存器的值賦予變量, 通過變量值的變化來判斷接收端是否從總線上接收到了報文。

          兩端CAN模塊寄存器的配置必須匹配, 否則兩者將無法進行。其具體配置方法如下:

          C1TX0CON = 0x0003;

          C1TX0SID = 0x0020;

          C1TX0DLC = 0x01c0;

          C1RX0CON = 0x0000;

          C1RX0DLC = 0x0008;

          C1RXF0SID = 0x0020;

          C1RXM0SID = 0xffff;

          C1CFG1 = 0x00ff;

          C1CFG2 = 0x07ff;

          在寄存器設置完成之后, 系統將進入正常工作模式。



        關鍵詞: 單片機 CAN 總線 通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贵阳市| 东乡族自治县| 玉溪市| 江华| 义马市| 海口市| 合山市| 江油市| 苍溪县| 定南县| 厦门市| 三都| 荥经县| 五大连池市| 定边县| 高安市| 宁河县| 通许县| 太白县| 新泰市| 井研县| 浑源县| 来安县| 陆良县| 客服| 芜湖县| 阳谷县| 柳州市| 庆阳市| 曲周县| 泗阳县| 鸡东县| 于都县| 涟水县| 静安区| 台东县| 淳化县| 北流市| 禹州市| 阳泉市| 阿瓦提县|