日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

單片機(jī)和CAN控制器在嵌入式系統(tǒng)中的應(yīng)用

出處:彭禹皓 發(fā)布于:2011-09-02 12:36:58

 

  1. 引言

  單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。根據(jù)市場(chǎng)的發(fā)展,EPSON 公司專為數(shù)據(jù)處理的便攜式設(shè)備推出了32位MCU(Microcontroller Unit )S1C33 系列,下面簡(jiǎn)單介紹一下EPSON 32 位單片機(jī)的特點(diǎn):

  中央處理器(英文CentralProcessingUnit,CPU)是一臺(tái)計(jì)算機(jī)的運(yùn)算和控制。CPU、內(nèi)部存儲(chǔ)器和輸入/輸出設(shè)備是電子計(jì)算機(jī)三大部件。電腦中所有操作都由CPU負(fù)責(zé)讀取指令,對(duì)指令譯碼并執(zhí)行指令的部件。其功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)。所謂的計(jì)算機(jī)的可編程性主要是指對(duì)CPU的編程。CPU由運(yùn)算器、控制器和寄存器及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)、控制及狀態(tài)的總線構(gòu)成。差不多所有的CPU的運(yùn)作原理可分為四個(gè)階段:提取(Fetch)、解碼(Decode)、執(zhí)行(Execute)和寫回(Writeback)。

  A. 強(qiáng)大的CPU內(nèi)核:S1C33采用RISC(精簡(jiǎn)指令集)結(jié)構(gòu),三級(jí)流水線,105條16位長(zhǎng)指令,其大多數(shù)指令在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行,大大提高了指令的執(zhí)行效率。

  B. 豐富的周邊電路:除了強(qiáng)大的CPU內(nèi)核外,S1C33的周邊電路也很有特色,考慮到對(duì)嵌入式芯片SOC(System On Chip)的要求,EPSON 公司在設(shè)計(jì)中在單片機(jī)內(nèi)集成了許多周邊電路,用戶在開發(fā)中,基本不需增加許多外部器件就可構(gòu)成完整的系統(tǒng),大大減少了系統(tǒng)成本和設(shè)計(jì)復(fù)雜度。以本文將要用到的S1C33209為例,它包括8KSRAM、直接內(nèi)存存取控制器DMAC、 中斷控制器ITC、可編程定時(shí)器計(jì)數(shù)器Programmable Timer、脈寬調(diào)制電路PWM、串行接口電路SIO、A/D 轉(zhuǎn)換器等等,還包含高速的晶振電路OSC3、鎖相環(huán)(PLL)、低速晶振電路和一個(gè)實(shí)時(shí)時(shí)鐘。

  C. 低功耗:功耗是很多嵌入式系統(tǒng)設(shè)計(jì)必須考慮的問題,S1C33 CPU支持三種類型的省電模式:兩種HALT模式和一種SLEEP模式;此外,S1C33 中時(shí)鐘電路設(shè)計(jì)有一個(gè)預(yù)分頻器(PSC),時(shí)鐘信號(hào)經(jīng)預(yù)分頻器分頻輸出合適的工作頻率到Timer、SIO、AD等,這樣芯片每個(gè)功能模塊都工作在合適的頻率上,系統(tǒng)功耗可降到。

  D. 良好的性價(jià)比:S1C33 CPU核非常小,邏輯門數(shù)在100K左右,并采用0.35um及以上加工工藝,使CPU core占用的芯片的面積較小,以達(dá)到良好的性價(jià)比。

  E. 獨(dú)特的ASIC Micro(門陣結(jié)構(gòu)CPU):S1C33 Core CPU和周邊電路都是用與非門單元組成的ASIC宏單元,這樣的設(shè)計(jì)使S1C33在芯片設(shè)計(jì)上有很大的靈活性,S1C33209芯片內(nèi)部有20K用戶可以自定義的門陣列(Gate Array)電路。

  ASIC是ApplicationSpecificIntegratedCircuit的英文縮寫,在集成電路界被認(rèn)為是一種為專門目的而設(shè)計(jì)的集成電路。目前,在集成電路界ASIC被認(rèn)為是一種為專門目的而設(shè)計(jì)的集成電路。是指應(yīng)特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。ASIC的特點(diǎn)是面向特定用戶的需求,ASIC在批量生產(chǎn)時(shí)與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。

  下面我們采用S1C33209,設(shè)計(jì)一個(gè)探測(cè)系統(tǒng)。

  2. 系統(tǒng)描述及組成

  我們的目標(biāo)是設(shè)計(jì)一個(gè)功耗低、易于擴(kuò)展、體積小的便攜設(shè)備,探測(cè)系統(tǒng)需要測(cè)量參數(shù)包括PH值、溶解氧、化學(xué)元素、深度等。測(cè)控系統(tǒng)工作時(shí)需要接收來自上位機(jī)控制中心的命令,要求將采集到的數(shù)據(jù)傳送到上位機(jī),兩者的通信距離大于5Km.由于CAN總線具有較高的可靠性、實(shí)時(shí)性和靈活性,其通信距離可到達(dá)10Km,受干擾概率低,因此我們采用CAN總線作為通信方式。

圖1 系統(tǒng)總體結(jié)構(gòu)圖

  系統(tǒng)總體結(jié)構(gòu)如圖1所示,CAN采用雙絞線,信號(hào)以差分電壓傳送。SJA1000一端與單片機(jī)相連,另一端與CAN總線相連。為了提高單片機(jī)對(duì)CAN總線的驅(qū)動(dòng)能力,把PCA82C250作為CAN控制器和物理總線間的接口,以提高對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力,其工作方式(高速方式和斜率方式)由引腳RS控制,RS接地為高速,RS串接一個(gè)電阻后再接地,用于控制上升和下降斜率,可以減少射頻干擾。系統(tǒng)從功能上分為兩個(gè)主要部分:測(cè)控子模塊和通信子模塊。測(cè)控子模塊主要功能是根據(jù)命令啟動(dòng)系統(tǒng)并完成參數(shù)提取、數(shù)據(jù)處理、存儲(chǔ)及發(fā)送等操作,為了滿足探測(cè)系統(tǒng)多路數(shù)據(jù)的快速采集與分析的特殊要求,該模塊以EPSON公司的S1C33209為,擴(kuò)展信號(hào)調(diào)理電路及與CAN總線的接口;通信子模塊的功能是完成水下測(cè)控系統(tǒng)與上位機(jī)的通信,此模塊主要是Philips公司的SJA1000型CAN控制器。

  SJA1000是一種獨(dú)立的CAN控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它是Philips半導(dǎo)體公司PCA82C200 CAN 控制器(BasicCAN)的替代產(chǎn)品,而且它增加了一種新的操作模式--PeliCAN,這種模式支持具有很多新特性的CAN 2.0B協(xié)議。

  3. 軟件設(shè)計(jì)

  在32位機(jī)系統(tǒng)中,由于軟件較復(fù)雜,基于操作系統(tǒng)的軟件開發(fā)占有重要地位。操作系統(tǒng)的作用是負(fù)責(zé)整個(gè)系統(tǒng)的任務(wù)調(diào)度、存儲(chǔ)分配、時(shí)鐘管理和中斷管理,并提供文件管理等基本服務(wù),S1C33 32位芯片使用EPSON公司的ROS33操作系統(tǒng),其為廣泛應(yīng)用于各種嵌入式系統(tǒ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時(shí),快調(diào)度響應(yīng)時(shí)間為7.8 μs)、支持基于ANSI 標(biāo)準(zhǔn)的C語言等特點(diǎn)。本設(shè)計(jì)的主應(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)識(shí)符,采用ID.18~ID.20.標(biāo)識(shí)符ID.21~ID.28作為固定命令,不參與驗(yàn)收濾波。數(shù)據(jù)表示通信的具體內(nèi)容,校驗(yàn)采用校驗(yàn)和的形式,為1個(gè)字節(jié)。由于CAN總線本身有15位CRC校驗(yàn),并且本系統(tǒng)節(jié)點(diǎn)數(shù)較少,競(jìng)爭(zhēng)不會(huì)十分激烈,所以通信可靠性較高。

  軟件設(shè)計(jì)思路如下:系統(tǒng)上電后,S1C33209先對(duì)自身和SJA1000初始化,以確定工作主頻、波特率及輸出特性等,然后接收來自上位機(jī)的控制命令,同時(shí)將獲取的采用數(shù)據(jù)通過SJA1000傳送到CAN總線上或備份到Flash存儲(chǔ)器中。其中對(duì)SJA1000初始化是設(shè)計(jì)的重點(diǎn),必須對(duì)寫入每個(gè)寄存器的內(nèi)容進(jìn)行仔細(xì)和全面考慮,否則系統(tǒng)將無法正常工作。設(shè)上位機(jī)SJA1000適配卡的ACR為xx20,AMR為FF00,下位機(jī)測(cè)控中心SJA1000的ACR為xx40,AMR為FF00.下面是初始化程序:

  Void CAN_Init(viod)

  { CANMODE=ox09;  //進(jìn)入復(fù)位模式,單項(xiàng)驗(yàn)收濾波,對(duì)SJA1000初始化

  CANCDR=0x88;    //選擇PeilCAN模式

  CANIER=0x1A;    //開放接收中斷、超載中斷和錯(cuò)誤中斷

  CANAMR0=0xFF;   //接收屏蔽寄存器內(nèi)容在單片機(jī)RAM中的值

  CANACR1=0x40;

  CANBTR0=0x03;   //總線定時(shí)寄存器

  CANBTR1=0xFF;

  CANOCR=0xAA;  //輸出控制寄存器

  CANMODE=0x08; //返回工作狀態(tài)

  CAN是控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)的簡(jiǎn)稱,是由研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā)了的,并終成為國際標(biāo)準(zhǔn)(ISO118?8)。是國際上應(yīng)用廣泛的現(xiàn)場(chǎng)總線之一。在北美和西歐,CAN總線協(xié)議已經(jīng)成為汽車計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機(jī)械車輛設(shè)計(jì)的J1939協(xié)議。近年來,其所具有的高可靠性和良好的錯(cuò)誤檢測(cè)能力受到重視,被廣泛應(yīng)用于汽車計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiáng)和振動(dòng)大的工業(yè)環(huán)境。

  由于測(cè)控系統(tǒng)對(duì)通信實(shí)時(shí)性要求較高,一旦接收到來自上位機(jī)的控制命令必須及時(shí)響應(yīng),為此CAN總線上接收信息采用中斷方式,即SJA1000無錯(cuò)地接收到信息后使INT變?yōu)榈碗娖?,下降沿觸發(fā)S1C33209外部中斷0,使其進(jìn)入中斷服務(wù)程序,其流程如圖2所示。


圖2 接收流程圖

  如果要向CAN控制器發(fā)送數(shù)據(jù),則必須將符合PeiCAN幀格式的一組數(shù)據(jù)寫入SJA1000的發(fā)送緩沖區(qū),然后調(diào)用發(fā)送子程序,我們采用查詢方式實(shí)現(xiàn)發(fā)送,如圖3流程所示。


圖3 發(fā)送流程圖

  4. 結(jié)束語

  為了進(jìn)行資源開發(fā),對(duì)海洋油田進(jìn)行探測(cè)及對(duì)污染進(jìn)行監(jiān)測(cè)和預(yù)防,本文采用EPSON公司的32位單片機(jī)S1C33209和SJA1000型控制器設(shè)計(jì)了一個(gè)探測(cè)系統(tǒng),該系統(tǒng)具有高速、功耗低、體積小、易于擴(kuò)展的特點(diǎn),實(shí)驗(yàn)表明,系統(tǒng)與上位機(jī)通信可靠,基本可以滿足實(shí)際需要。


  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!