新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線的溫室測控系統的研究與設

        基于CAN總線的溫室測控系統的研究與設

        作者: 時間:2012-03-16 來源:網絡 收藏

        3 軟件設計
        本系統的軟件程序設計是在Freescale公司的集成開發環境——Freescale Codewarrior 5.1下完成的。該系統的軟件由CAN控制器軟件和應用層通信協議構成。
        3.1 驅動層軟件實現
        CAN控制器軟件主要包括器件初始化、數據發送和接收。初始化工作主要是對QG8微處理器、SPI接口和MCP2515CAN控制器的初始化。其中微處理器初始化主要包括定時器、變量和外部中斷的初始化。需要特別注意的是飛思卡爾單片機的定時器與其他單片機(如51系列單片機)不太一樣,QG8微處理器的定時器是不能預置某個數值的,而且是只讀的,因此必須要有輔助寄存器才能實現該定時器的功能,本文采用的是QG8微處理器的16位的定時器模塊TPM:SPI接口的初始化主要包括對控制寄存器SPIC1和SPIC2、波特率寄存器SPIBR、狀態寄存器SPIS、數據寄存器SPID的設置。MCP2515的初始化為復位MCP2515、寄存器配置。只有對MCP2515初始化后,進入了配置模式才能對相關的寄存器進行初始化,初始化工作完成后進入工作模式,進行報文發送。為了能使節點穩定的通信,上所有的節點都必須有相同的波特率。對于振蕩器時鐘頻率不同的器件,可以通過對波特率預分頻比和每一個時間段中時間份額數量的設置來調整比特率。
        QG8是通過使用標準SPI讀/寫命令對寄存器進行讀/寫操作。外部數據和命令式通過SI引腳在SCK時鐘信號上升沿傳送到器件中。MCP25 15在SCK下降沿通過SO引腳發送數據。本文采用狀態查詢方式發送報文。首先應該禁止CAN發送中斷產生,以保證報文發送不被中斷。為了啟動報文發送,必須將相應緩沖器的TxBnCTRL TxREQ位置1,文中是通過調用RTS2515()請求發送來實現的。緩沖器中TxBnCTRL TxP1:0>優先級最高的報文在總線空閑時首先被發送。如果發送成功將產生中斷來通知接收,否則TxBnC TRL TxRR和CANINIF.MERRF將被置位,產生發送錯誤狀態,同時INT引腳置位,產生中斷請求。具體報文發送流程如圖4所示。

        e.JPG



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 溆浦县| 广宗县| 唐海县| 桦川县| 大英县| 潮州市| 苗栗县| 礼泉县| 报价| 乌恰县| 景洪市| 云安县| 三河市| 博客| 上杭县| 浮山县| 蒙山县| 石景山区| 福安市| 太保市| 双辽市| 麻江县| 西盟| 昔阳县| 浦东新区| 灵寿县| 保德县| 德化县| 佛山市| 萨嘎县| 剑河县| 太康县| 普安县| 那坡县| 东明县| 通山县| 珲春市| 万州区| 靖宇县| 得荣县| 大安市|