新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ATmega16單片機的CAN總線轉RS232設計

        基于ATmega16單片機的CAN總線轉RS232設計

        作者: 時間:2013-02-20 來源:網絡 收藏

        四、主程序

        在微處理控制下,RS-232和進行數據交換時,采用查詢方式和串口發送可提高工作效率。其主程序流程圖如圖5所示。SJA1000的初始化在復位模式下才可以進行,主要包括工作方式的設置、時鐘分頻和驗收濾波寄存器的設置、波特率參數的設置以及中斷允許寄存器的設置等。數據能否準確傳遞還取決于波特率和流量控制,這也是軟件時不可忽略的地方。

        串口波特率采用9600 bit/s,系統上電初始化后控制器查詢發送標志位,一旦發送緩沖區空就發送數據。同時也檢測狀態寄存器的接收標志位,當有數據接收時讀取接收緩沖區,然后判斷接收數據幀,當接收幀為錯誤幀就丟掉數據并將CAN控制器復位,如果數據幀是正確幀就將該幀打包成符合協議的幀結構,通過串口發送出去。

        五、結束語

        本文采用ATMega16、SJAl000、MCP2551和MAX232,開發了CAN轉232的接口,完成了兩種協議的轉換,實現了CAN通信接口設備之間的通信。測試和實際使用表明該接口運行穩定、可靠,達到了設計要求。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 化州市| 商城县| 县级市| 忻城县| 平乐县| 江门市| 桐庐县| 淮滨县| 道真| 军事| 揭阳市| 锦屏县| 安岳县| 彭水| 桑日县| 永德县| 南平市| 呼玛县| 夏河县| 吴川市| 四子王旗| 山阴县| 张家川| 绥宁县| 蛟河市| 中江县| 龙游县| 西充县| 曲周县| 祁阳县| 麻阳| 准格尔旗| 湘潭市| 皮山县| 西贡区| 宿州市| 洮南市| 邯郸市| 额尔古纳市| 四会市| 山东省|