新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S3C2410的CAN總線通信設計與開發

        基于S3C2410的CAN總線通信設計與開發

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


        圖2 濾池就地控制單元硬件結構圖

        3.1 接口軟件實現

        的SPI可以工作在四種模式,但是MCP2515的SPI接口只支持其中的兩種。因此應該將的SPI接口配置為MCP2515支持的模式工作。從圖1中可以看出的SPI應該配置為正常模式的中斷方式,具體配置操作請見參考文獻[2]。

        S3C2410-SPI的單個字節讀、寫函數實現如下:

        unsigned char ReadSPI( void )
        {
        SPRDAT0 = 0x00; // 初始化SPI總線
        while ( !REDY );
        // 判斷接收數據是否完成
        return ( SPRDAT0 );
        // 獲取接收到的數據
        }
        unsigned char WriteSPI( unsigned char data )
        {
        SPRDAT0 = data; // 寫數據到發送緩沖區
        if ( DCOL ) return ( -1 );
        // 判斷是否發生沖突,發生沖突則返回錯誤標準
        else while( !REDY );
        // 否則等待數據發送完成
        return ( 0 ); // 返回發送成功標準
        }

        對MCP2515的讀寫函數原型如下:

        void Mcp_Read( unsigned char Addr, unsigned char *ReadData, unsigned char Length );
        void Mcp_Write( unsigned char Addr, unsigned char *WriteData, unsigned char Length );
        Addr:要讀寫區域的首地址;
        ReadData/WriteData:讀取數據存放區、寫出數據緩沖區首地址;
        Length:要讀、寫數據的字節數。

        其它對MCP2515的操作在此不一一列舉,請見參考文獻[3]。

        3.2 總線數據收發軟件設計

        本設計采用外部中斷1響應MCP2515的總中斷,并且配置控制器始終處于喚醒模式,發送器工作在正常模式,使能接收、發送、錯誤中斷。中斷方式處理總線數據收發的流程如圖3,分別從發送處理、接收處理、錯誤處理三個部分加以說明。


        圖3 中斷方式實現CAN總線數據收發流程圖



        關鍵詞: S3C2410 CAN 總線通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 衡阳市| 灵台县| 株洲市| 甘孜县| 明溪县| 五常市| 炎陵县| 道孚县| 兰考县| 东山县| 清徐县| 曲阳县| 连城县| 万安县| 永吉县| 晋宁县| 广州市| 凤阳县| 南部县| 襄垣县| 邻水| 航空| 息烽县| 金秀| 桦南县| 普宁市| 城口县| 彭州市| 比如县| 壤塘县| 喀什市| 千阳县| 玉门市| 华宁县| 萨嘎县| 荣昌县| 平和县| 银川市| 沙坪坝区| 瑞丽市| 岳阳县|