新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > RS-232轉CAN通信適配卡設計

        RS-232轉CAN通信適配卡設計

        作者: 時間:2011-12-04 來源:網絡 收藏
        1.3 A/D轉換模塊

        本文引用地址:http://www.104case.com/article/172386.htm

          PIC16F877A單片機自帶有8路模擬通道,轉換精度為10位。本卡選擇RA0為模擬通道。板卡將A/D轉換后的數據通過總線上傳給上位機。

          1.4 數據流

          -的數據流圖見圖4。

          2 系統軟件

          軟件分為兩大塊:板卡底層軟件和PC機上串口操作軟件設計。板卡底層軟件設計主要是對PIC16F877A編程,用于把從PC機通過串口輸人給單片機的數據按照協議幀結構進行打包處理,并操作CAN控制器把數據發送到CAN總線;把從CAN總線上輸入的數據轉換成串行數據輸出給PC機:PC機上串口操作軟件設計主要是對串口的操作和通過串口收發數據。

          2.1單片機編程

          開發工具使用的是MPLAB集成開發環境(IDE),它是綜合的編輯器、項目管理器和設計平臺,適用于使用Microchip的PICmicro系列單片機進行嵌入式設計的應用開發;編程語言用的是C語言,將HITECH 公司的PICC編譯器直接掛接在MPLAB-IDE集成開發平臺下,實現一體化的編譯連接和原代碼調試。

          CAN控制器SJA1000T片內有模式寄存器MOD、命令寄存器CMR、狀態寄存器SR、中斷寄存器IR、中斷使能寄存器IER、接收緩沖器RXB、發送緩沖器TXB、仲裁丟失捕捉寄存器ALC、錯誤代碼捕捉寄存器ECC、錯誤報警限額寄存器EWLR、錯誤計數寄存器ERR、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR、總線時序寄存器BTR、輸出控制寄存器OCR和時鐘分頻寄存器CDR等,單片機就是通過讀寫這些寄存器來實現對SJA1000T的控制,從而實現CAN報文的接收和發送。文后給出CAN控制器SJA1000T初始化和接收子程序的流程圖。下面給出CAN初始化程序,其中WRCAN是自定義的一段對SJAIO00T寫數據的子程序。

          2.2 串口操作程序設計

          在各種開發工具中間,VC由于功能強大和靈活,所以本實驗系統使用VC作為開發工具。串口通訊目前流行的方法主要有3種:一是利用Microsoft提供的CMSCOMM控件進行通訊,通過插入ActiveX控件的方式實現;二是利用WIN API函數進行編程,這種編程的難度較高,要掌握較多的API函數;三是利用現在網絡上面提供的一些串口通訊控件進行編寫,比如CSerial類等。本程序采用WINAPI函數進行串口的開發,程序在PC機上用來收發串口數據運行正確穩定。



        關鍵詞: 設計 適配 通信 CAN RS-232

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 怀远县| 潞西市| 贵南县| 钦州市| 六枝特区| 镇江市| 湘潭县| 马公市| 大名县| 玉屏| 普兰县| 澄江县| 玉溪市| 竹山县| 内乡县| 抚远县| 通许县| 孙吴县| 崇义县| 额尔古纳市| 孟连| 年辖:市辖区| 类乌齐县| 常德市| 淳安县| 犍为县| 涟水县| 达尔| 会昌县| 博白县| 绥德县| 新乐市| 伊川县| 乐山市| 隆昌县| 遵义县| 玉门市| 唐山市| 手游| 乌兰察布市| 岳阳市|