<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)和CAN控制器的嵌入式系統(tǒng)設(shè)計

          基于單片機(jī)和CAN控制器的嵌入式系統(tǒng)設(shè)計

          作者: 時間:2011-12-15 來源:網(wǎng)絡(luò) 收藏

          3. 軟件設(shè)計
          在32位機(jī)系統(tǒng)中,由于軟件較復(fù)雜,基于操作系統(tǒng)的軟件開發(fā)占有重要地位。操作系統(tǒng)的作用是負(fù)責(zé)整個系統(tǒng)的任務(wù)調(diào)度、存儲分配、時鐘管理和中斷管理,并提供文件管理等基本服務(wù),S1C33 32位芯片使用EPSON公司的ROS33操作系統(tǒng),其核心為廣泛應(yīng)用于各種的iTron 3.0 OS Kernel,ROS33 Kernel具有:支持μITRON 3.0標(biāo)準(zhǔn)、內(nèi)核優(yōu)化并緊湊(最小可為1.7k)、響應(yīng)快(CPU主頻為33MHz時,最快調(diào)度響應(yīng)時間為7.8 μs)、支持基于ANSI 標(biāo)準(zhǔn)的C語言等特點(diǎn)。本設(shè)計的主應(yīng)用程序框架如下:
          #include “ros33.h”
          void main()
          {
          sys_ini(); //用于初始化ROS33所用的參數(shù)和資源
          vcre_tsk(task ID, task startup address, priority, initial address of stack); //定義被執(zhí)行的任務(wù)

          sta_tsk(task ID, task startup code); //激活執(zhí)行

          sys_sta();
          }
          該系統(tǒng)通信協(xié)議采用“ID+命令+數(shù)據(jù)+校驗(yàn)”的形式,其中,ID為網(wǎng)絡(luò)設(shè)備標(biāo)識符,采用ID.18~ID.20。標(biāo)識符ID.21~ID.28作為固定命令,不參與驗(yàn)收濾波。數(shù)據(jù)表示通信的具體內(nèi)容,校驗(yàn)采用校驗(yàn)和的形式,為1個字節(jié)。由于CAN總線本身有15位CRC校驗(yàn),并且本系統(tǒng)節(jié)點(diǎn)數(shù)較少,競爭不會十分激烈,所以通信可靠性較高。
          軟件設(shè)計思路如下:系統(tǒng)上電后,S1C33209先對自身和SJA1000初始化,以確定工作主頻、波特率及輸出特性等,然后接收來自上位機(jī)的控制命令,同時將獲取的采用數(shù)據(jù)通過SJA1000傳送到CAN總線上或備份到Flash存儲器中。其中對SJA1000初始化是設(shè)計的重點(diǎn),必須對寫入每個寄存器的內(nèi)容進(jìn)行仔細(xì)和全面考慮,否則系統(tǒng)將無法正常工作。設(shè)上位機(jī)SJA1000適配卡的ACR為xx20,AMR為FF00,下位機(jī)測控中心SJA1000的ACR為xx40,AMR為FF00。下面是初始化程序:
          Void CAN_Init(viod)
          { CANMODE=ox09; //進(jìn)入復(fù)位模式,單項(xiàng)驗(yàn)收濾波,對SJA1000初始化
          CANCDR=0x88; //選擇PeilCAN模式
          CANIER=0x1A; //開放接收中斷、超載中斷和錯誤中斷
          CANAMR0=0xFF; //接收屏蔽寄存器內(nèi)容在RAM中的值
          CANACR1=0x40;
          CANBTR0=0x03; //總線定時寄存器
          CANBTR1=0xFF;
          CANOCR=0xAA; //輸出控制寄存器
          CANMODE=0x08; //返回工作狀態(tài)
          由于測控系統(tǒng)對通信實(shí)時性要求較高,一旦接收到來自上位機(jī)的控制命令必須及時響應(yīng),為此CAN總線上接收信息采用中斷方式,即SJA1000無錯地接收到信息后使INT變?yōu)榈碗娖剑陆笛赜|發(fā)S1C33209外部中斷0,使其進(jìn)入中斷服務(wù)程序,其流程如圖2所示。

          圖2 接收流程圖

          分頻器相關(guān)文章:分頻器原理


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();