<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于單片機AT89C52的CAN總線(xiàn)分布式測控系統的研制

基于單片機AT89C52的CAN總線(xiàn)分布式測控系統的研制

作者: 時(shí)間:2008-03-18 來(lái)源:MXP電子工程聯(lián)盟社區 收藏
  本文介紹了一種基于單片機AT89C52的CAN總線(xiàn)分布式測控系統,主要闡述了系統的總體設計方案,以及控制模塊和采集模塊的軟硬件設計,重點(diǎn)是系統中以單片機為核心的帶有CAN總線(xiàn)接口的設計,解決現場(chǎng)各傳感器得到的測量信號利用單片機進(jìn)行存儲和處理,然后通過(guò)與CAN控制器的通訊將信息發(fā)送到CAN總線(xiàn)上。
 
  1 CAN總線(xiàn)網(wǎng)絡(luò )的技術(shù)特點(diǎn)[1][2]  
  
  用通訊數據塊編碼,可實(shí)現多主工作方式,數據收發(fā)方式靈活,可實(shí)現點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播等多種傳輸方式;可將DCS結構中主機的常規測試與控制功能分散到各個(gè)智能節點(diǎn),節點(diǎn)控制器把采集到的數據通過(guò)CAN適配器發(fā)送到總線(xiàn),或者向總線(xiàn)申請數據,主機便從原來(lái)繁重的底層設備監控任務(wù)中解放出來(lái),進(jìn)行更高層次的控制和管理功能,比如故障診斷、優(yōu)化協(xié)調等;
 
  采用非破壞性基于優(yōu)先權的總線(xiàn)仲裁技術(shù),具有暫時(shí)錯誤和永久性故障節點(diǎn)的判別及故障節點(diǎn)的自動(dòng)脫離功能,使系統其它節點(diǎn)的通信不受影響;同時(shí),CAN具有出錯幀自動(dòng)重發(fā)功能,可靠性高;   
 
  信號傳輸用短幀結構(8字節),實(shí)時(shí)性好;
  
  不關(guān)閉總線(xiàn)即可任意掛接或拆除節點(diǎn),增強了系統的靈活性和可擴展性;  
 
  采用統一的標準和規范,使各設備之間具有較好的互操作性和互換性,系統的通用性好;   
 
  通訊介質(zhì)可采用雙絞線(xiàn),無(wú)特殊要求;現場(chǎng)布線(xiàn)和安裝簡(jiǎn)單,易于維護,經(jīng)濟性好。
 
  總之,CAN總線(xiàn)具有實(shí)時(shí)性強、可靠性高、結構簡(jiǎn)單、互操作性好、價(jià)格低廉等優(yōu)點(diǎn),克服了傳統的工業(yè)總線(xiàn)的缺陷,是構建分布式測控系統的一種有效的解決方案。
 
  2系統總體硬件設計方案 
  
  首先,定義各節點(diǎn)的功能,確定各節點(diǎn)檢測或控制量的數目、類(lèi)型、信號特征。這是進(jìn)行微機測控系統網(wǎng)絡(luò )化的第一步。原則是盡量避免重復測試。智能節點(diǎn)模塊絕大部分是輸入輸出模塊,調節回路可以跨模塊構成回路。但考慮到調節回路的安全性,為了保證在上位機或整個(gè)通信線(xiàn)路出現重大故障時(shí)回路調節不受到影響,設計了隔離型、自整定PID、隔離型溫度調節器等帶有調節功能的模塊。它們的輸入輸出通道都在同一模塊中,其底層軟件的功能很強,所有的輸入處理、輸出增量的計算(多種調節算法可通過(guò)組態(tài)選擇,包括串級調節)、輸出,包括自整定模塊的過(guò)程參數的自動(dòng)識別都在本模塊實(shí)現,保證了調節回路的安全性、可靠性。
 
  其次,選擇各節點(diǎn)控制器和相應的CAN適配元件。由于各測控節點(diǎn)功能相對單一,數據量少,因此對CPU的要求大大降低,采用8051系列單片機即可滿(mǎn)足要求。CAN 總線(xiàn)適配器件主要有:控制器接口、總線(xiàn)收發(fā)器和I/O器件。采用Philips公司生產(chǎn)的82C200CAN控制器和與其配套的82C250CAN收發(fā)器。82C200具有完成高性能通信協(xié)議所要求的全部必要特性。具有簡(jiǎn)單總線(xiàn)連接的82C200可完成物理層和數據鏈路層的所有功能。
  
  最后,按照CAN總線(xiàn)物理層協(xié)議選擇總線(xiàn)介質(zhì),設計布線(xiàn)方案,連接成CAN總線(xiàn)分布式測控網(wǎng)絡(luò )。如圖1所示。
 

本文引用地址:http://dyxdggzs.com/article/80232.htm
  3系統的硬件組成[3][4][5]
  (1)CAN總線(xiàn)接口模塊
  ① 微處理器
  目前廣泛流行的CAN總線(xiàn)器件有兩大類(lèi):一類(lèi)是獨立的CAN控制器,如82C200,SJA1000及Intel 82526/82527等;另一類(lèi)是帶有芯片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。根據當前市場(chǎng)、開(kāi)發(fā)工具和課題的實(shí)際需要,系統的智能節點(diǎn)均選用ATMEL 8位單片機AT89C52為微處理器。
 
  ② CAN控制器
  CAN控制器選用SJA1000作為控制器。SJA1000是高集成度CAN控制器。具有多主結構、總線(xiàn)訪(fǎng)問(wèn)優(yōu)先權、成組與廣播報文功能及硬件濾波功能。輸入時(shí)鐘頻率為16MHh時(shí)鐘,輸出可編程控制。由以下幾部分構成:接口管理邏輯、發(fā)送緩存器、接收緩存器、位流處理器、位定時(shí)邏輯、收發(fā)邏輯、錯誤管理邏輯、控制器接口邏輯等。
 
  SJA1000有很多新功能 :標準結構和擴展結構報文的接受和發(fā)送;64字節的接收FIFO;標準和擴展幀格式都具有單/雙接收濾波器;可進(jìn)行讀/寫(xiě)訪(fǎng)問(wèn)的錯誤計數器;可編織的錯誤報警限制:最近一次的錯誤代碼寄存器;每一個(gè)CAN總線(xiàn)錯誤都可以產(chǎn)生錯誤中斷;具有丟失仲裁定位功能的丟失仲裁中斷;單發(fā)方式(當發(fā)主錯誤或丟失仲裁時(shí)不重發(fā));只聽(tīng)方式(監聽(tīng)CAN總線(xiàn),無(wú)應答,無(wú)錯誤標志);支持熱插拔(無(wú)干擾軟件驅動(dòng)位速率監測)。因此,系統的智能節點(diǎn)均選用SJA1000作為CAN控制器。
 
  ③ CAN總線(xiàn)收發(fā)器
  CAN總線(xiàn)收發(fā)器選用PCA82C250作為總線(xiàn)收發(fā)器。 PCA82C250是CAN 協(xié)議控制器和物理總線(xiàn)之間的接口。82C250 可以為總線(xiàn)提供不同的發(fā)送性能,為CAN 控制器提供不同的接收性能。而且它與“ISO 11898”標準完全兼容。PCA82C250的目的是為了增大通信距離,提高系統的瞬間抗干擾能力,保護總線(xiàn),降低射頻干擾(RFI)實(shí)現熱防護等。為了進(jìn)一步提高抗干擾措施,在兩個(gè)CAN器件之間使用了由高速隔離器件6N137構成的隔離電路。 CAN器件與微處理器的硬件連接如圖2所示。


  硬件電路的設計并不太困難,但有幾點(diǎn)應引起注意:
  總線(xiàn)兩端兩個(gè)120Ω的電阻,對于匹配總線(xiàn)阻擾,起著(zhù)相當重要的作用。忽略掉它們,會(huì )使數據通信的抗干擾性及可靠性大大降低,甚至無(wú)法通信。
 
  82C50第8腳與地之間的電阻Rs稱(chēng)為斜率電阻,它的取值決定了系統處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統將處于高速工作方式,在這種方式下,為避免射頻干擾,建議使用屏蔽電纜作總線(xiàn);而在波特率較低、總線(xiàn)較短時(shí),一般采用斜率控制方式,上升及下降的斜率取決于民的阻值,實(shí)驗數據表明15"200kΩ為Rs較理想的取值范圍,在該方式下,可以使用平行線(xiàn)或雙絞線(xiàn)作總線(xiàn)。
 
  SJA1000的TX1腳懸空,RX1引腳的電位必須維持在約0.5Vcc上,否則,將不能形成CAN協(xié)議所要求的電平邏輯。如果系統傳輸距離近,環(huán)境干擾小,可以不用電流隔離,這樣可直接把82C250的VREF端(約為0.5 Vcc)與RX1腳相連,從而簡(jiǎn)化了電路。
 
  在系統中,SJA1000的片選信號一般由地址總線(xiàn)經(jīng)譯碼獲得,并由此決定出CAN控制器各寄存器的地址。實(shí)際應用中,采用單片機AT89C52的P2.7為片選信號。所以,SJA1000的地址為:7F00"7F32H。
 
  當上電復位時(shí),AT89C52的上電復位,需要從低到高的電平變化來(lái)激活,而SJA1000的17腳RST被激活,需要出現一個(gè)由高電平到低電平的跳變,因此,這必須加一個(gè)反相器。
 
  (2)數據采集模塊
  數據采集模塊用來(lái)將各類(lèi)傳感器的數據傳送到CAN總線(xiàn)上。整個(gè)電路包括:看門(mén)狗X5045,單片機89C52,鎖存器74LS373,A/D轉換器ADC0809以及CAN控制器SJA1000和收發(fā)器82C250。電路板如圖3。

  數據采集模塊的工作原理:各類(lèi)傳感器采集到數據后將0—5V的模擬量傳送到ADC0809,0809將轉換成的數字量傳給89C52,最后單片機將采集到的數據送到SJA1000通過(guò)CAN總線(xiàn)收發(fā)器82C250傳上總線(xiàn),完成數據采集工作。
 
  (3)控制模塊
  是一個(gè)帶有CAN通信功能的隔離型控制器。該模塊有一個(gè)數據輸入點(diǎn),可以是命令或其他信號,有一個(gè)模擬量輸出,供輸出執行機構是連續變化的控制系統使用,例如控制步進(jìn)電機;還有一路是數字量輸出,供執行機構是兩位式的控制系統使用,例如開(kāi)關(guān)設備。這個(gè)控制器可以單獨作為一個(gè)調節器使用,因為在該模塊上提供了完整的顯示窗口和操作按鈕,可以設定溫度設定值、PID調節參數等運行過(guò)程中可以顯示被控對象的PV值和SV值。
 
  該模塊可以根據設定的控制點(diǎn)及升、降的時(shí)間實(shí)現自動(dòng)調節。帶有CAN通信口,可以與微機實(shí)現通信,也就是說(shuō)控制模塊可以接入CAN 網(wǎng)絡(luò )系統。通過(guò)上位機實(shí)現對多個(gè)節點(diǎn)上的控制模塊設定各控制點(diǎn)的上下限控制點(diǎn)、PID值、實(shí)現時(shí)間等控制參數,并實(shí)時(shí)記錄各控制器的測量值,描繪出變化曲線(xiàn),供實(shí)驗人員對實(shí)驗結果進(jìn)行分析。如圖4所示。

  4系統軟件設計
  (1)CAN 總線(xiàn)通訊模塊
  CAN總線(xiàn)測控系統的通信軟件分為3部分:CAN初始化、數據發(fā)送和數據接收。
  ① CAN初始化
  其主要是設置CAN的通信參數。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、時(shí)分寄存器、接收代碼寄存器、屏蔽寄存器、總線(xiàn)定時(shí)寄存器、輸出控制寄存器等。需要注意的是,這些寄存器僅能在復位期間可寫(xiě)訪(fǎng)向,因此,在對這些寄存器初始化前,必須確保系統進(jìn)入了復位狀態(tài),并且系統中各CAN控制器的總線(xiàn)定時(shí)寄存器的初始化字必須相同。
 
  ② 數據發(fā)送
  現場(chǎng)的各傳感器把環(huán)境多參數的檢測信號(數字量、模擬量、開(kāi)關(guān)量)進(jìn)行轉換處理后,發(fā)向CAN控制器的發(fā)送緩沖區,然后啟動(dòng)CAN控制器的發(fā)送命令,此時(shí)CAN控制器將自動(dòng)向總線(xiàn)發(fā)送數據,不再需傳感器的微控制器進(jìn)行干預。若系統中有多個(gè)傳感CAN控制器同時(shí)向總線(xiàn)發(fā)送數據,則CAN控制器通過(guò)信息幀中的標識符來(lái)進(jìn)行仲裁,標識符數值最小的CAN控制器具有對總線(xiàn)的優(yōu)先使用權。
 
  ③ 數據接收
  整個(gè)溫室微機測控系統中的CAN控制器檢測到總線(xiàn)上有數據時(shí)會(huì )自動(dòng)接收總線(xiàn)上的數據,存入其接收緩沖區,并向89C52微控制器發(fā)送接收中斷,啟動(dòng)中斷接收服務(wù)程序,89C52通過(guò)執行中斷接收服務(wù)程序,從CAN控制器的接收緩沖區讀取數據,并對其進(jìn)行進(jìn)一步處理工作。
 
  (2)監控模塊
  集成了所有的數據采集、參數設定、數據統計分析等功能。同時(shí),為了實(shí)現操作人員對生產(chǎn)過(guò)程的人工干預,如修改給定值、控制參數和報警限等,添加了參數的修改功能;為了建立人機信息聯(lián)系,并且能將各節點(diǎn)傳輸來(lái)的數據以圖形、圖表或其它動(dòng)態(tài)方式顯示出來(lái),本系統可以使用任何具有DDE(Dynamic Data Exchange)接口的MMI(Man-Machine interface)軟件;為了更好的管理各種數據,采取了組態(tài)控制方式,能夠接收來(lái)自MMI軟件以及用戶(hù)軟件的DDE連接請求,并將該請求傳遞給通信驅動(dòng)部分,由通信驅動(dòng)轉換為通信信號通過(guò)傳輸媒體傳遞給智能模塊的固化軟件。并將模塊的應答作為DDE操作的結果返回給MMI軟件及用戶(hù)軟件。
 
  5 結論
  將先進(jìn)的現場(chǎng)總線(xiàn)技術(shù)(CAN BUS)應用于智能測控系統,大大提高了系統的可靠性;自主開(kāi)發(fā)了符合國際標準的基于單片機的智能節點(diǎn),不僅大量節約了資金,而且可以購置通用的同類(lèi)設備,可節約大量的研發(fā)費用;基于工控機的上位機提供了良好的人機界面,使操作更加方便,直觀(guān)。
 
  參考文獻:
  [1] 林強,陽(yáng)憲惠等.現場(chǎng)總線(xiàn)及其網(wǎng)絡(luò )集成.測控技術(shù),1999,18(5):24-26
  [2] 顧洪軍等.工業(yè)企業(yè)網(wǎng)與現場(chǎng)總線(xiàn)技術(shù)及應用.北京:人民郵電出版社,2002.4.265-416
  [3]肖海榮,周風(fēng)余.基于SJA1000的CAN總線(xiàn)系統智能節點(diǎn)設計[J].計算機自動(dòng)測量與控制,2001,9(2)
  [4]鄔寬明.CAN總線(xiàn)原理和應用系統設計[M].北京航空航天大學(xué)出版社
  [5]獨立CAN器件SJA1000的應用[J].南京工程學(xué)院學(xué)報,2002年3月

pid控制器相關(guān)文章:pid控制器原理




關(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>