<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于單片機和CAN控制器的嵌入式系統設計

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

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

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

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

圖2 接收流程圖

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


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>