新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的CAN總線多節點遠程數據傳輸系統

        基于DSP的CAN總線多節點遠程數據傳輸系統

        作者: 時間:2012-07-27 來源:網絡 收藏

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

        4. 1. 2  初始化郵箱
          
        對郵箱初始化即是對郵箱中的有關寄存器進行初始化,主要用來設置郵箱接收或發送報文的標識符,發送的是遠程幀還是數據幀,并對發送的數據區賦初值。步驟為:禁止郵箱工作,即向郵箱方向/ 使能控制寄存器MDER 中的郵箱使能位MEn( n = 0~5) 寫0 ;設置MCR 寄存器中數據域改變請求位為1 ;配置郵箱的內容;返回正常模式;使能郵箱。

        4. 1. 3  郵箱信息的接收和發送
          
        在做完以上初始化工作后, 就可以轉入郵箱的收發程序。為了大量的數據能在系統網絡上連續傳輸, 在內存設置了2個數據緩沖區(讀和寫2 個數據區) , 分別用來存放要發送和接收的數據。用郵箱發送時, 將準備發送的數據從寫數據存儲區寫到發送郵箱的數據區, 然后使能發送郵箱并設置TCR寄存器中發送請求位為1 , 判斷發送應答信號和發送中斷標志位, 在成功發送之后再將發送中斷標志位和發送應答位清除。


        圖4  數據發送流程圖
         
        對于一個接收事件來說,由于每個CAN 節點接收數據是根據檢測網絡上數據幀的ID 與接收郵箱中初始化設定的報文的設定ID 是否相符來決定該節點是否接收此數據,因此在接收事件中,要設置接收郵箱報文的標識符及標識符相關的局部屏蔽寄存器(LAM) 。然后判斷接收信息懸掛位RMPn 或接收中斷標志位MIFn 是否置位,如果位說明郵箱成功接收信息,將接收的數據轉移到讀據緩沖區,然后復位接收中斷標志位和接收信息懸掛位。


        圖5  數據接收流程圖

        4. 2  SCI 串行通信程序設計

        串行通信的程序分為 的串行收發和PC 機的串行收發兩個。對于PC 機的串行收發采用了標準串口通訊程序。TMS320LF2407 串行通信的軟件設計可以采用查詢和中斷兩種方式,設計中采用了中斷方式接收數據,并設置軟件發送標志位來查詢發送的方式。程序分為主程序和中斷服務程序2 個部分。

        在主程序中對SCI 異步串口進行初始化(包括操作模式、波特率、字符長度、奇偶校驗位、停止位位數、中斷優先級和使能控制等信息) 。主程序設置了軟件發送標志位,并不斷查詢此位,在其置位時發送數據。中斷服務程序中,當需要上傳數據時,在中斷程序或其他的子程序中置發送標志位,由主程序通過查詢該標志位來控制發送數據;對于接收數據,則在中斷服務程序中,將接收到的數據地址與相應軟件設置的地址進行比較,采用地址位喚醒模式實現與上位機通訊。

        在串行通信中,時鐘和波特率的同步是十分重要的,在編程中,考慮到所用芯片的特性和實際應用需要,采用了系統時鐘為20 MHz ,通訊波特率4 800 bit/ s 與RS - 232 進行通信。根據公式: SCI 異步波特率= SYSCLK/ [ (BRR + 1) ×8]
        來確定波特率選擇寄存器BRR 的值。

        值得注意的是在串行通信設置中,串行通信控制寄存器SCICTL1 的SLEEP 位(上電時為1) 設置很重要,SLEEP 位為SCI休眠位,為1 時使能休眠方式,它的正確設置可以使得通信過程正確的響應中斷,從而轉移到相應的服務程序中。因此必須正確設置使得程序只有在檢測到地址字節時被中斷。而在中斷程序中比較地址:若相同,則軟件清除SLEEP 位,確保在收到每個數據字節都可產生中斷;若不相同,則保持SLEEP 為1 以接收下一個地址。由于系統為多節點的通信,因此采用了地址位喚醒模式來正確控制各節點間的數據收發。在調試程序中為每個節點設置了2 個標識地址(如00H 和FFH) ,當收到00H時, 發送數據,當收到FFH 時, 接收數據。圖6、圖7 分別為串行主程序和中斷服務程序的流程圖。

        圖6 串行通信主程序流程圖


        圖7 中斷服務程序的流程圖

        5  結束語

        系統解決了野外作業時要求高穩定性的遠程問題,可以在環境惡劣的情況下,多點采集數據,并將采集到的數 據及時處理傳輸到遠端上位機進行分析控制。在實際的測試中,用此系統很好地完成了數據的采集傳輸工作,由此得出此系統可以穩定的進行工作。


        上一頁 1 2 下一頁

        關鍵詞: DSP 數據傳輸 CAN總線

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灯塔市| 彭水| 吴江市| 邵阳县| 胶州市| 临桂县| 桑植县| 大悟县| 左贡县| 游戏| 汉中市| 安岳县| 井研县| 阳新县| 原阳县| 金山区| 哈巴河县| 五华县| 吉林市| 祥云县| 安徽省| 宝兴县| 苏尼特左旗| 娄烦县| 当涂县| 宁强县| 兰州市| SHOW| 承德县| 武宁县| 晋江市| 宕昌县| 秦皇岛市| 溆浦县| 拜城县| 新绛县| 许昌市| 长丰县| 临颍县| 河曲县| 昌都县|