新聞中心

        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 總線通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安龙县| 全椒县| 丹凤县| 岱山县| 仲巴县| 彩票| 聂拉木县| 隆安县| 木兰县| 鹤壁市| 长寿区| 冕宁县| 德阳市| 兴业县| 凤凰县| 孟州市| 黄山市| 大邑县| 天门市| 徐州市| 安福县| 赣州市| 顺平县| 水富县| 聊城市| 凌海市| 加查县| 海安县| 苍梧县| 扬州市| 宾阳县| 秦皇岛市| 沧源| 修武县| 新丰县| 腾冲县| 海原县| 涞源县| 广西| 如东县| 崇义县|