91chinese在线,成人激情免费视频,国产午夜无码视频免费网站,亚洲另类无码一区二区三区

經典案例

聯系方式

公司名稱:昆山華航電子有限公司
公司電話:0512-50139595
公司郵箱:eric@kshuahang.com
公司地址:江蘇省昆山市善浦西路

您當前的位置:首頁 > 技術資源 > PCB設計技術

解析CAN總線與PC機串口通信適配器設計與實現

  CAN總線(Controller AreaNetwork,控制器局域網) 已成為比較流行的一種現場總線,廣泛應用于控制系統中的各檢測和執行機構之間的數據通信,因其具有高性能、高可靠性、高性價比、連接方便、實時性好及其獨特的設計等突出優點應用于許多工業部門。而實際應用中PC機與CAN總線的人機交互設計尤為重要,它直接影響系統的運行和結果,其連接方法也成為系統設計的重點,通常采取3種連接方式:RS-232串行口通信、PCI卡、USB口通信,由于串行通信端口在系統控制領域中一直扮演著極為重要的角色,以其開發簡單,資源豐富,成本低,無需驅動程序等諸多優點,不僅沒有被淘汰,反而在規格上更先進,故應用廣泛。結合設計中AT89C51單片機有串行通信口且接口簡單的特點,選用RS-232作為CAN總線與PC機之間的連接方式。將就這一基于CAN控制器SJA1000與AT89C51的具有通用性的工業測控系統設計的軟硬件設計方案作詳細介紹。
  CAN總線及CAN控制器SJA1000簡介
  CAN總線最初是德國Bosch公司在1986 年為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種支持分布式實時控制系統的串行數據通訊總線。CAN總線與其它通信網的顯著不同之處在于:
  (1)報文傳送中不包含目標地址,它是以全網廣播為基礎,各接收站根據報文中反映數據性質的標識符過濾報文,該收的收下,不收的棄用。其好處是可線上網下網、即插即用和多站接收。
  (2)特別強化了對數據安全性的關注,滿足控制系統及其它較高數據要求的系統需求。另外CAN總線采用短幀結構,借助接收濾波的多地址幀傳送,受干擾概率低,每幀信息都有CRC校驗及其它檢錯措施。響應遠程數據請求,配置靈活,具有全系統的數據相容性。節點數主要取決于總線驅動電路,目前最多可達110個節點。CAN總線符合ISO11898標準,通信速率高,最大傳輸速率可達1Mbit/S,最大傳輸距離為10km,傳輸介質可為雙絞線。基于CAN總線以上的特點,把它應用于系統分布比較分散且需要在同一總線上掛接多個節點的場合是非常適合的。
  目前廣泛流行的CAN總線器件有兩大類:一類是獨立的CAN控制器,如PhilipS公司的PCA82C200,SJA1000及Intel82256/82257等;另一類是帶有在片CAN的微控制器,如P8XC582等。其中Philips公司的PCA82C200是符合CAN2. 0A協議的總線控制器,SJA1000是它的替代產品,它是應用于汽車和一般工業環境的獨立CAN總線控制器。具有完成CAN通信協議所要求的全部特性。經過簡單總線連接的SJA1000可完成CAN總線的物理層和數據鏈路層的所有功能。其硬件與軟件設計和PCA82C200的基本CAN模式(BasicCAN)兼容。同時,新增加的增強CAN模式( PeliCAN)還可支持CAN2. 0B協議。根據當前市場開發工具和課題的實際需要,選用SJA1000作為CAN控制器,同時使用了CAN控制器接口芯片PCA82C250。
  SJA1000有兩種工作模式:基本模式和增強模式。在基本模式下,SJA1000只可收發標準數據幀(標準數據幀的標識符為11位),且錯誤報警的極限值不能修改;在增強模式下,SJA1000既可接收標準數據幀,也可接收擴展數據幀(擴展數據幀的標識符為29位),可修改錯誤報警的極限值,并且SJA1000具有更加靈活的濾波方式,能夠根據數據幀的標識符有選擇地接收一些數據幀。另外,增強模式下的SJA1000能夠進行自檢,即可通過自發自收一組報文來判斷該控制節點是否正常地掛在CAN總線上。使用者所要做的主要工作是SJA1000的初始化,收發報文的處理以及對節點脫離總線的檢測量與處理。
  RS-232標準
  串行通信由于接線少、成本低,在數據采集和控制系統中得到了廣泛的應用,1969年,美國電子工業協會( EIA)公布了RS-232C作為串行通信接口的電氣標準,該標準定義了數據終端設備(DTE)和數據通信設備(DCE)間按位串行傳輸的接口信息,合理安排了接口的電氣信號和機械要求,在世界范圍內得到了廣泛的應用。
  系統總體結構原理及設計
  該適配器利用RS-232串行通信口及CAN總線進行數據通信,實現上位機與各智能節點間的通信任務,包括控制臺(上位機)向下傳輸命令和下位機數據的返回,以完成對下層設備的監控。圖1為系統結構框圖。PC機通過RS-232與CAN控制器SJA1000通信,實現信息在CAN總線上的發送與接收。底層各智能節點根據應用的不同具有不同功能,但都具有與CAN總線通信能力可以上傳數據和接收數據。
  CAN總線接口硬件設計
  圖2為CAN總線通信接口適配器硬件設計簡圖。
  PCA82C250提供對總線的差動發送和對CAN控制器的差動接收功能,也增大了通信距離,提高了系統的瞬間抗干擾能力,保護總線,降低射頻干擾(RFI),實現了熱防護等功能。
  系統軟件設計
  軟件設計分PC機Visual BasiC編程和AT89C51單片機C語言編程2部分。
  PC機部分
  采用VB6. 0編程,這樣界面非常直觀,人機交互效果好。VB提供了具有通訊功能的MSComm. OCX控件,該控件可設置串行通信的數據發送和接收,對串口狀態及串口通信的信息格式和協議進行設置。MSComm控件提供2種處理通訊的方式:(1)事件驅動通訊,即發送或接收數據過程中觸發ONCOMM事件,通過編程訪問CommEvent屬性了解通信事件的類型,分別進行各自的處理;(2)查詢方式,通過檢查CommEvent屬性的值來查詢事件和錯誤。采取查詢方式。控件MSComm是將RS-232的初級操作予以封裝,用戶以高級的BasiC語法即可利用RS-232與外界通信并不需要了解其他有關的初級操作,因此使用方便。
  MSComm控件初始化:
  MSComm1. CommPort= 2 設置串口2
  MSComm1. SettingS=“9600,N,8,1” 設定工作方式
  MSComm1. InBufferSize = 10 根據1次傳1個CAN幀,設置輸入緩沖區大小
  MSComm1. InputMode = 1 二進制形式接收
  MSComm1. InputLeN= 0 一次讀出輸入緩沖區中的所有數據
  MSComm1. OutBufferSize = 10 輸出緩沖區大小的設置
  MSComm1. OutBufferCount= 0 清空輸出緩沖區
  MSComm1. PortOpeN= True  打開串口
  PC機與單片機MSC51之間的通信約定如下:一般情況下PC與多個MSC51單片機系統進行主從式通信,其方案是MSC51采用串口工作方式3,即11位異步接收/發送方式,有效數據為9位,其中第9位為地址/數據信息的標志位,以此區分各從機。但現在PC機采用VB編程,其MSComm控件為標準的10位串口通信,包括8位標準數據和數據的起始位和停止位。將單片機串口設為工作方式1,即改為10位異步接收/發送方式,通訊流程如下:
  通訊時首先發通信開始標志,接著發送各下位機單片機的地址信號和芯片的片選信號,然后發送單片機的工作命令字。再往下即進行數據處理,轉入相應的處理功能模塊,最后對數據進行效驗。這個通訊流程非常簡便,實現了PC機與單片機之間的主從式通訊。
  以下為VB的發送接收程序:
  Private SuBcmdSendàClick() 使用按鈕控件
  MSComm1. Output= txtSend. Text 將傳送區內的字符串以Output屬性送出
  End Sub
  Private SuBFormàLoad() 窗體的加載事件
  MSComm1. PortOpeN= True  將通訊斷口開啟,通訊參數也可以在開啟前先設定
  MSComm1. RThreshold = Val (txtThreshold. Text) 設定引發接收事件的接收閾值,使程序一執行便開啟通訊端口,將接收的閾值設定為閾值,設定文本框內的值。
  End Sub
  Private SuBMSComm1. OnComm() 通訊控件的OnComm事件。引發接收事件后,將字符收進來并放在接收的文本框中
  SelectCase MSComm1. CommEvent 根據下面每一個case 語句處理每個事件和錯誤事件
  Case comEvCD  CD 線的狀態發生變化
  Case commEvReceive  收到Rthreshold # of
  txtReceive. Text= txtReceive. Text+ Trim(MSComm1. Input)&vbCrLf
  Case comEvSend  傳輸緩沖區有Sthreshold 個字符
  End Select
  End Sub
  Private SuBtxtThreshold Change ( ) p閾值設定文本框的Change事件
  MSComm1. Rthreshold = Val (txtThreshold. Text) p當設定的閾值變化時,實時改變通訊對象的屬性
  End Sub
  AT89C51單片機部分
  單片機部分采用C語言編程。C語言編程具有快捷、模塊功能強大、可靠性好、效率高等優點。其中程序初始化包括設定串口工作方式,定時器、中斷寄存器初始化,各變量的初始化。
  TMOD = 0x20; //定時器1為發生器
  SCON= 0x50; //串口工作方式1
  TH1= 0xfd ; //設定波特率= 9600bit/s
  TL1= 0xfd ;
  EA= 1; //開中斷
  ES= 1; //允許串口中斷
  TR1= 1; //啟動定時器T1
  SPECHAR = 0xff ; //設定通訊開始標志
  程序采用中斷接收,查詢發送的方式。串口中斷服務程序流程圖如圖3所示。
  SJA1000控制器部分
  初始化子程序CANINIT()
  選用CAN2. 0協議構建CAN總線控制網絡,對SJA1000的初始化主要包括工作方式的設置、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR、波特率的參數設置等。
  void canàinit(void) /*SJA1000的初始化子函數*/
  {control = 1; /*禁止超載、出錯及接收中斷,并置復位請求位使其進入復位狀態*/
  while (control&0x01== 0);
  acceptanceàcode = 0x01; /*驗收碼寄存器(存機號1號)*/
  acceptanceàmask= 0xfe ; /*驗收屏蔽碼寄存器*/
  busàtimingà0= 0x03; /*總線定時寄存器0,同步跳轉寬度
  T0= T,BPS= 125 k*/
  busàtimingà1= 0x18; /*總線定時寄存器1,T1= 9T,T2=2T,波特率為500kbit/S*/
  outputàcontrol = 0x1A; /*正常輸出方式,TX1引腳懸浮*/
  clockàdivider = 0x40; /*BASICCAN模式,RX1接固定電平*/
  control = 0x1A; /*清復位請求,使其進入工作狀態*/
  }
  發送canàsend()
  發送子程序負責節點報文的發送,由CAN控制器SJA1000獨立完成,將命令寄存器里的發送請求標志置位,即可發送SJA1000發送緩沖區中的報文。
  void canàsend(unsigned char ID ,char*xdata) /*該子函數完成一幀數據的發送*/
  {while ( (status&0x10)>> 4 == 1)àNOPà; /*檢查上次請求發送是否完成*/
  while ( (status&0x04)>> 2== 0)àNOPà;
  Transmitbuffer1= ID;
  Transmitbuffer2= 0x08;
  Transmitbuffer3= txdata[0] ;
  Transmitbuffer10= txdata[7] ;
  Command = 0x05 ; /*發送請求*/
  while ( (status&0x08)>> 3== 0);
  }
  接收子程序canàreceive ()
  接收子程序負責節點報文的接收。SJA1000自動接收發往該節點的數據并將收到的數據放到它的接收緩沖器中。
  SJA1000的報文接收主要有2種方式:中斷接收方式和查詢接收方式。系統采用的是中斷接收方式。
  {unsigned char ir ;
  ir = interrupt; /*獲得SJA1000的中斷狀態*/
  EA= 0;
  If ( (ir&0x04)>> 2== 1)error ( ); /*如果是出錯中斷,則調出錯處理函數*/
  If ( (ir&0x08)>> 3== 1)overruN( ); /*如果是超載中斷,則調超載處理函數*/
  While ( ( (ir&0x04)>> 2== 1)‖( ( (ir&0x08)>> 3)== 1){àNOPà;}
  RxID[0] = Receivebuffer1;
  RxID[0] = Receivebuffer2;
  If ( ( (Receivebuffer2&0x10)>> 4)== 0) /*如果是數據幀,則接收數據*/
  {Rxdata[0] = Receivebuffer3;
  .
  Rxdata[7] = Receivebuffer10;
  Command = 0x04 ; /*SJA1000的接收緩存器被釋放*/
  }
  else if ( ( (Receivebuffer2&0x10)>> 4)== 1) /*如果是遠程幀,則作相應處理*/
  {  /*相應處理程序*/
  EA= 1;
  }
  }
上一篇:探析基于USB總線的實時數據采集系統設計與實現
下一篇印刷電路板的加工與修理
溫馨提示:
凡在本公司進行電路板克隆業務的客戶,必須有合法的PCB設計版權來源聲明,以保護原創PCB設計版權所有者的合法權益;
【 字體: 】【打印此頁】 【返回】【頂部】【關閉

91chinese在线,成人激情免费视频,国产午夜无码视频免费网站,亚洲另类无码一区二区三区
  • <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 一区二区三区成人| 欧美无砖专区一中文字| 成人午夜私人影院| 国产视频一区二区在线观看| 成人h精品动漫一区二区三区| 欧美一区二区不卡视频| 日本欧美久久久久免费播放网| 91精品免费在线观看| 麻豆精品视频在线观看| 日韩美女天天操| 成人丝袜18视频在线观看| 国产欧美日韩激情| 成人动漫一区二区在线| 亚洲成av人综合在线观看| 制服丝袜亚洲色图| 成人高清免费观看| 亚洲成人av电影在线| 久久久精品一品道一区| 色婷婷亚洲精品| 老司机午夜精品| 亚洲视频精选在线| 精品嫩草影院久久| 91年精品国产| 蜜桃91丨九色丨蝌蚪91桃色| 国产日韩一级二级三级| 欧美日韩精品一区二区在线播放| 美女高潮久久久| 亚洲色图色小说| 欧美韩国一区二区| 91精品国产91久久久久久一区二区| 精品一区二区三区免费播放| 中文字幕中文字幕一区| 欧美大片一区二区| 96av麻豆蜜桃一区二区| 免费成人在线视频观看| 亚洲欧美一区二区三区孕妇| 欧美一区二区三区性视频| 色呦呦国产精品| 国产盗摄一区二区| 奇米一区二区三区| 亚洲成人自拍网| 亚洲丝袜制服诱惑| 日韩精品一区二区三区在线| 91一区二区在线观看| 国产麻豆精品一区二区| 日韩成人av影视| 亚洲欧美日韩中文播放| 精品理论电影在线观看| 久久久久久夜精品精品免费| 日韩一级成人av| 欧美日韩免费一区二区三区视频| 色综合色综合色综合色综合色综合| 国产精品一级在线| 国产在线观看一区二区| 精品一区二区av| 国产一区二区三区av电影| 韩国午夜理伦三级不卡影院| 日本午夜精品一区二区三区电影 | 精品制服美女久久| 蜜臂av日日欢夜夜爽一区| 亚洲国产中文字幕| 日韩电影在线观看一区| 全国精品久久少妇| 九九国产精品视频| 国产乱码精品1区2区3区| 国产高清在线精品| 成人久久18免费网站麻豆| 丁香亚洲综合激情啪啪综合| 成人免费视频一区| 91蜜桃婷婷狠狠久久综合9色| 99视频精品在线| 在线观看免费一区| 欧美一区日韩一区| 久久久久久久久99精品| 中文字幕在线不卡一区| 亚洲国产欧美一区二区三区丁香婷| 亚洲成人免费视频| 国内一区二区在线| 色婷婷综合中文久久一本| 欧美日韩极品在线观看一区| 欧美一区二区播放| 国产欧美日韩卡一| 亚洲一区二区三区在线播放| 丝袜亚洲另类丝袜在线| 国产91精品在线观看| 91老师片黄在线观看| 91精品国产色综合久久不卡电影 | 不卡视频一二三| 色88888久久久久久影院野外 | 欧美一区二区啪啪| 中文字幕第一区综合| 亚洲综合色成人| 国产精品亚洲视频| 在线91免费看| 国产精品天干天干在观线| 热久久久久久久| 欧美性色黄大片| 欧美韩国日本不卡| 麻豆精品久久精品色综合| 色哟哟国产精品免费观看| 精品国产污污免费网站入口| 亚洲精品网站在线观看| 成人一区二区在线观看| 91精品国产91久久久久久最新毛片| 国产精品久久久久影院亚瑟| 久久97超碰国产精品超碰| 欧美偷拍一区二区| 亚洲欧美乱综合| 懂色av中文字幕一区二区三区 | 麻豆精品一区二区av白丝在线| 色八戒一区二区三区| 亚洲国产精品成人综合色在线婷婷 | 日韩一区二区影院| 一区二区三区日本| va亚洲va日韩不卡在线观看| 国产婷婷色一区二区三区四区 | 91黄色激情网站| 国产精品久久一卡二卡| 国产精品自产自拍| 精品免费一区二区三区| 香蕉乱码成人久久天堂爱免费| 99久久国产综合精品麻豆| 国产精品水嫩水嫩| 成人黄色在线看| 欧美激情综合在线| 国产成人免费网站| 国产日产亚洲精品系列| 国产不卡视频在线播放| 国产日韩欧美精品在线| 成人一二三区视频| 国产日韩欧美一区二区三区综合| 国产成人一区在线| 日本一区二区视频在线观看| 国产91富婆露脸刺激对白| 久久久久久一二三区| 成人精品在线视频观看| 亚洲欧美偷拍三级| 欧美性色黄大片| 日本aⅴ亚洲精品中文乱码| 日韩三区在线观看| 国产黄色精品视频| 亚洲欧美成人一区二区三区| 欧美亚洲一区二区在线观看| 秋霞午夜av一区二区三区| 久久这里都是精品| 99精品桃花视频在线观看| 亚洲福利国产精品| 精品国产一区二区亚洲人成毛片 | 337p亚洲精品色噜噜| 国内精品久久久久影院一蜜桃| 国产性色一区二区| 色婷婷国产精品久久包臀| 午夜精品久久久久久久久久| 欧美电视剧免费全集观看| aaa欧美大片| 日韩主播视频在线| 欧美国产成人在线| 在线观看91av| 国产成人免费在线视频| 亚洲大片一区二区三区| 久久久久久亚洲综合| 色www精品视频在线观看| 另类欧美日韩国产在线| 国产精品美女久久福利网站| 欧美精品视频www在线观看| 国产精品影视在线| 亚洲成人www| 最新久久zyz资源站| 日韩色在线观看| 欧美自拍丝袜亚洲| 丁香六月久久综合狠狠色| 日韩电影在线免费看| 伊人色综合久久天天| 国产农村妇女精品| 日韩亚洲欧美成人一区| 色国产综合视频| 成人国产视频在线观看| 麻豆国产欧美一区二区三区| 亚洲欧美一区二区三区极速播放| 26uuu国产电影一区二区| 欧美午夜影院一区| av电影一区二区| 国产69精品久久777的优势| 裸体一区二区三区| 亚洲永久免费视频| 欧美激情一区二区三区在线| 日韩欧美一级二级三级久久久| 欧美综合亚洲图片综合区| 9久草视频在线视频精品| 久久99日本精品| 日韩精品亚洲一区二区三区免费| 亚洲欧美视频在线观看| 国产精品美女久久久久久久网站| 精品少妇一区二区三区视频免付费| 欧美日韩精品一区二区三区| av在线一区二区三区| jlzzjlzz欧美大全| www.性欧美| 91美女精品福利| 91久久免费观看|