新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線的電力集中抄表系統

        基于CAN總線的電力集中抄表系統

        作者: 時間:2009-05-21 來源:網絡 收藏


        3 通信軟件設計
        對于微處理器,控制器完全是事件觸發的,即在本身狀態發生改變時,控制器會把狀態變化的結果告訴微處理器。因此中心微處理器可以采用中斷方式或者輪詢方式對CAN控制器做出相應的處理。各CAN節點按規定格式和周期發送數據到上,同時根據需要各取所需報文。對于接收數據,則采用中斷的方式實現,一旦中斷發生,即將接收的數據裝載到相應的報文寄存器中。此時利用屏蔽濾波寄存器對接收報文的標識符和預先在接收緩沖器初始化時設定的標識符進行有選擇地逐位比較,只有標識符匹配的報文才能進入接收緩沖器,那些不符合要求的報文將被屏蔽于接收緩沖器外,從而減輕CPU處理報文的負擔。
        3.1 CAN控制器初始化
        初始化CAN控制器的操作包括硬件使能、軟件復位、設置報警界限、設置波特率、設置中斷工作方式、設置驗收濾波器工作方式、設置工作模式并啟動CAN等。初始化程序如下:

        3.2 數據發送
        將待發送的數據打包成符合CAN協議的幀格式后,便可寫入發送緩沖區,并啟動發送。在寫發送緩沖區前必須查詢其狀態。中的每個CAN控制器有3個發送緩沖區,它們的狀態可通過查詢CANSR得知。只有當其中有空閑的發送緩沖區時才可將數據寫入。在發送大量數據時,這一步顯得尤其重要,否則將不能保證發送的可靠性。啟動發送成功后,只能通過查詢cANGSR的TCS位或配合發送成功中斷來判斷數據是否發送成功。
        3.3 數據接收
        接收數據可采用查詢方式或中斷方式。在某一段時間內,并不總是在活動。為了提高效率,可采用中斷方式,在初始化程序中必須使能接收中斷。在中斷服務子程序中,讀取CANICR,判斷是否有接收中斷標志,有則讀取接收緩沖區數據。為了防止接收緩沖區數據溢出,可開辟一個循環接收數據隊列來暫時存儲數據,主程序則通過查詢該隊列獲得總線數據。

        4 總結

        ,其抄表的數據通信具有很強的實時性、可靠性和抗干擾性,該的樣機正在進行網測試,以期通過研究和改進,進一步提高程序的通信處理、糾錯和容錯能力。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 明水县| 金山区| 磐石市| 常州市| 桂平市| 林州市| 景德镇市| 肃宁县| 南充市| 桑植县| 雅安市| 运城市| 武宣县| 泸定县| 石家庄市| 定陶县| 高唐县| 孟津县| 上饶县| 楚雄市| 梁平县| 芜湖县| 五莲县| 怀仁县| 宜章县| 文成县| 和平区| 庄浪县| 巫山县| 福建省| 滦平县| 枣阳市| 镇江市| 华蓥市| 普兰店市| 砚山县| 右玉县| 金山区| 成武县| 大渡口区| 新竹市|