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

淺談Small RTOS51 下CAN總線數據收發(fā)實現

出處:王功翠 張秀娟 賈世勝 發(fā)布于:2011-09-02 11:19:28

  1 CAN總線簡介

  現場總線(Fieldbus)是近年來迅速發(fā)展起來的一種工業(yè)數據總線,它主要解決工業(yè)現場的智能化儀器儀表、控制器、執(zhí)行機構等現場設備間的數字通信以及這些現場控制設備和控制系統(tǒng)之間的信息傳遞問題。由于現場總線簡單、可靠、經濟實用等一系列突出的優(yōu)點,因而受到了許多標準團體和計算機廠商的高度重視。現場總線(Fieldbus)是20世紀80年代末、90年代初國際上發(fā)展形成的,用于  現場總線技術

  過程自動化、制造自動化、樓宇自動化等領域的現場智能設備互連通訊網絡。它作為工廠數字通信網絡的基礎,溝通了生產過程現場及控制設備之間及其與更高控制管理層次之間的聯(lián)系。它不僅是一個基層網絡,而且還是一種開放式、新型全分布控制系統(tǒng)。這項以智能傳感、控制、計算機、數字通訊等技術為主要內容的綜合技術,已經受到世界范圍的關注,成為自動化技術發(fā)展的熱點,并將導致自動化系統(tǒng)結構與設備的深刻變革。國際上許多實力、有影響的公司都先后在不同程度上進行了現場總線技術與產品的開發(fā)。德國Bosch公司的CAN(1Mbit/s)是國際標準之一,也是Controller Area Network 的應用標準。它屬于現場總線范疇,是一種有效支持分布式控制或實時控制的串行通信網絡。由于其高性能、高可靠性、及獨特設計,CAN總線已成為目前國外普及和實時性的現場總線。CAN總線在可靠性和實時性方面遠遠優(yōu)于RS-485等工業(yè)現線CAN總線主要有下列特征:

  1. 數據信號采用差分電壓傳輸,兩條信號線"CAN_H"和" CAN_L".

  2. 傳輸介質可用雙絞線、同軸電纜或光纖,具有較強的抗干擾能力。直接通信距離可達10km(速率小于5kbit/s),通信速率可達1Mbit/s(此時距離長為40m)。

  3. 節(jié)點不分主從,節(jié)點任意時刻可向其他節(jié)點發(fā)送信息,依據優(yōu)先權進行總線訪問,滿足不同的實時要求。

  4. 采用非破壞性基于優(yōu)先權總線仲裁技術。

  5. 采用短幀結構,每幀為8bit,保證了數據出錯率低。

  6. 可以點對點、點對多點及全局廣播方式傳送接收數據。

  7. 發(fā)送期間若丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā)送。

  2  Small RTOS51簡介

  Small RTOS51是一個用于8051系列單片機的多任務實時操作系統(tǒng)。8051系列單片機一般只有很少的ROM和RAM資源,如P89C51只有4KB Flash和128字節(jié)RAM.單片微型計算機簡稱為單片機,又稱為微型控制器,是微型計算機的一個重要分支。單片機是70年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是CPU、RAM、ROM、I/O接口和中斷系統(tǒng)于同一硅片的器件。80年代以來,單片機發(fā)展迅速,各類新產品不斷涌現,出現了許多高性能新型機種,現已逐漸成為工廠自動化和各控制領域的支柱產業(yè)之一。一般的實時操作系統(tǒng)如RTX Tiny 雖然小,但是任務沒有優(yōu)先級和中斷管理,也無源代碼,而uc/os-II規(guī)模太大,需要大量外部RAM.基于此,Small RTOS51是專為51 單片機編寫嵌入式操作系統(tǒng),它使用了RTX51 Tiny 的堆棧管理機制,并像uc/os-II一樣是搶占式的。

  3 一個典型的CAN節(jié)點

  3.1.CAN總線接口的結構

  一個CAN總線接口有3 部分組成,如圖(a)所示,它們分別對應于CAN總線的物理層、數據鏈路層和應用層。

  上層為微控制器,主要負責上層應用以及系統(tǒng)控制,包括CAN協(xié)議的應用層協(xié)議的實現,協(xié)調各系統(tǒng)設備的工作。(本設計采用的MCU是8051)

  中間層為CAN控制器,CAN控制器負責處理數據幀,完成數據的打包、解包,錯誤界定,并提供報文緩沖和傳輸濾波。(本設計采用的CAN總線控制器是Philips公司生產SJA1000)

  層為CAN收發(fā)器,主要是接口電平的轉換,接口電器特性的處理。(本設計采用82C250)

  (a)CAN接口結構

  3.2.節(jié)點電路設計

  (1)SJA1000與單片機接口電路

  (b)SJA1000與單片機接口電路

  SJA1000的AD0-AD7與單片機的數據總線相連,地址A17作為SJA1000的片選使能端,由ALE、WR、RD控制SJA1000 數據的發(fā)送和接收。注意SJA1000復位端的連接,單片機是高電平復位,而SJA1000是低電平復位,因此復位信號要通過一個反相器與SJA1000復位端相連。另外SJA1000的11腳MODE接高電平,選擇Intel二分頻模式 .SJA1000的16腳時中斷信號輸出,在中斷允許情況下,有中斷發(fā)生時,16腳出現有高電平到低電平的跳變。

  SJA1000的ODE引腳可選擇接口模式:

  ◆Intel模式  MODE高

  ◆M0torola模式  MODE低

  (2)節(jié)點前端物理接口電路的設計

  (c)節(jié)點前端物理接口電路的設計

  使用SJA1000 CAN總線控制器可完成CAN總線通信任務,但它的驅動能力不夠,因此外接82C250總線驅動芯片。CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由研發(fā)和生產汽車電子產品著稱的德國BOSCH公司開發(fā)了的,并終成為國際標準(ISO118?8)。是國際上應用廣泛的現場總線之一。 在北美和西歐,CAN總線協(xié)議已經成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網的標準總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機械車輛設計的J1939協(xié)議。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應用于汽車計算機控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境82C250是CAN控制器和物理總線間的接口。之所以選擇82C250芯片是因為其具有高速性(可達1Mbit/s),具有抗瞬間干擾保護總線的能力。具有降低射頻干擾的斜率控制。此外,它可以與110 個節(jié)點相連,防止電池與地之間發(fā)生短路,當某一個節(jié)點掉電時,不會影響總線。

  (3)設計電路注意的問題

  ◆SJA1000通過光耦與82C250的連接是光電隔離的接法。這樣可以防止線路間的串擾。在總線兩端要接2 個120歐姆的總線阻抗匹配電阻。忽略掉它們會降低總線的抗干擾能力,甚至導致無法通信。

  ◆SJA1000的TX1腳懸空,RX1引腳的電位必須維持在0.5vcc以上,否則將不能行成CAN協(xié)議所要求的電平邏輯。

  ◆光耦6N137的輸入端2,3腳的信號輸入極性要與光耦的輸出極性相同,如果電路設計時極性相反,也可以通過軟件編程改變SJA1000的數據輸出極性,從而使單片機的輸出數據與82C250中數據的極性一致。

  4 在Small RTOS 下CAN節(jié)點的數據接收與發(fā)送實例

  下面將通過一個簡單的實例(需要配置Small RTOS51操作系統(tǒng))來介紹在Small RTOS 下CAN節(jié)點的數據接收與發(fā)送過程。實例使用兩個CAN節(jié)點組成CAN網絡,實現的功能是,每隔一定的定時周期發(fā)送一幀數據,同時接收CAN數據,并將接收的CAN數據發(fā)送到CAN總線上。LED將顯示收到的數據幀的頭兩個字節(jié)。

  (1)實例部分代碼實現

  void main(void)

  {

  CpuInit(); //微控制器初始化

  UserTickTimer(void);//系統(tǒng)時鐘節(jié)拍的初始化

  OSStart();//啟動small rtos操作系統(tǒng)

  SendData();//發(fā)送數據任務

  { unsigned char data status;

  unsigned char i;

  unsigned char xdata *p =&CAN1_SJA_BaseAdr+REG_CAN_SR  ;

  unsigned char xdata *p1;

  status=SJAInit();//初始化can控制器

  if(status!=0){

  OSSendSignal(2); //喚醒錯誤處理任務

  }

  P_SJAFrameStructApp  =(P_SJAFrameStruct )&BufCan2[0];

  IT0 =0;//電平觸發(fā)模式

  EX0=1;//使能CAN中斷

  BufCan2[0]=0x88;

  P_SJAFrameStructApp->FrameID=0x11111111;

  while(1)

  {

  OSWait(K_TMO,2);//系統(tǒng)等待函數,每兩個時鐘周期發(fā)送數據

  P_SJAFrameStructApp->FrameID++;

  p1=(unsigned char xdata *)&P_SJAFrameStructApp->FrameID;

  for(i=0;i<4;i++)  //發(fā)送測試數據

  BufCan2[1+i] =*(p1+i);// 0x55;

  for(i=0;i<4;i++)

  BufCan2[5+i] =*(p1+i);// 0x55;

  for(i=0;i<4;i++)

  BufCan2[9+i] =*(p1+i);// 0x55;

  status=SJASendData(BufCan2,0x10);//向CAN總線發(fā)送數據,所發(fā)送數據的首地址是BufCan2

  if(status!=0)  //表示發(fā)送數據錯誤

  OSSendSignal(2);喚醒錯誤處理任務

  }

  }

  void DisPlay(void)

  {

  while(1){

  OSWait(K_TMO,1);

  ShowLED(); // led顯示處理

  }

  }

  Error();// 錯誤信息處理任務

  }

  (2) 測試結果:

  如果運行正確:數碼管會顯示依次加1的數值,否則:數碼管會顯示E-xx的錯誤代碼

  5 結束語

  CAN總線的產生與發(fā)展控制器局部網(CAN-CONTROLLER AREA NETWORK)是BOSCH公司為現代汽車應用推出的一種多主機局部網,由于其高性能、高可靠性、實時性等優(yōu)點現已廣泛應用于工業(yè)自動化、多種控制設備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門。控制器局部網將在我國迅速普及推廣。

  隨著計算機硬件、軟件技術及集成電路技術的迅速發(fā)展,工業(yè)控制系統(tǒng)已成為計算機技術應用領域中活力的一個分支,并取得了巨大進步。由于對系統(tǒng)可靠性和靈活性的高要求,工業(yè)控制系統(tǒng)的發(fā)展主要表現為:控制面向多元化,系統(tǒng)面向分散化,即負載分散、功能分散、危險分散和地域分散。

  本文作者創(chuàng)新點是實現了在實時操作系統(tǒng)Small RTOS51下CAN總線上數據的接收與發(fā)送,用一個簡單的實例來說明了CAN總線的接收、發(fā)送原理。
  

關鍵詞:淺談Small RTOS51 下CAN總線數據收發(fā)實現CAN總線

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://hbjingang.com,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。

車聯(lián)網時代,汽車電子的接口類型有can總線,lin總線,rs485,rs232,或者以太網總線等等
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

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

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

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

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

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