第2章 CAN現場總線_第1頁
第2章 CAN現場總線_第2頁
第2章 CAN現場總線_第3頁
第2章 CAN現場總線_第4頁
第2章 CAN現場總線_第5頁
已閱讀5頁,還剩140頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章CAN現場總線20世紀80年代初,德國的BOSCH公司提出了用CAN(ControllerAreaNetwork)控制器局域網絡來解決汽車內部的復雜硬信號接線。目前,其應用范圍已不再局限于汽車工業(yè),而向過程控制、紡織機械、農用機械、機器人、數控機床、醫(yī)療器械及傳感器等領域發(fā)展。CAN總線以其獨特的設計,低成本、高可靠性、實時性、抗干擾能力強等特點得到了廣泛的應用。本章首先介紹了CAN現場總線的特點和CAN的技術規(guī)范,然后詳述了經典的CAN獨立通信控制器SJA1000、CAN總線收發(fā)器和CAN總線節(jié)點的設計實例。最后以一個CAN通信轉換器的設計實例,詳述了CAN應用系統(tǒng)設計。2.1CAN的特點1993年11月ISO正式頒布了道路交通運輸工具、數據信息交換、高速通信控制器局域網國際標準ISO11898CAN高速應用標準,ISO11519CAN低速應用標準,這為控制器局域網的標準化、規(guī)范化鋪平了道路。CAN具有如下特點:(1)CAN為多主方式工作,網絡上任一節(jié)點均可以在任意時刻主動地向網絡上其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活,且無需站地址等節(jié)點信息。利用這一特點可方便地構成多機備份系統(tǒng)。(2)CAN網絡上的節(jié)點信息分成不同的優(yōu)先級,可滿足不同的實時要求,高優(yōu)先級的數據最多可在134μs內得到傳輸。(3)CAN采用非破壞性總線仲裁技術。當多個節(jié)點同時向總線發(fā)送信息時,優(yōu)先級較低的節(jié)點會主動地退出發(fā)送,而最高優(yōu)先級的節(jié)點可不受影響地繼續(xù)傳輸數據,從而大大節(jié)省了總線沖突仲裁時間,尤其是在網絡負載很重的情況下也不會出現網絡癱瘓情況(以太網則可能)。(4)CAN只需通過報文濾波即可實現點對點、一點對多點及全局廣播等幾種方式傳送接收數據,無需專門的“調度”。(5)CAN的直接通信距離最遠可達10km(速率5kbit/s以下);通信速率最高可達1Mbit/s(此時通信距離最長為40m)。(6)CAN上的節(jié)點數主要取決于總線驅動電路,目前可達110個;報文標識符可達2032種(CAN2.0A),而擴展標準(CAN2.0B)的報文標識符幾乎不受限制。(7)采用短幀結構,傳輸時間短,受干擾概率低,具有極好的檢錯效果。(8)CAN的每幀信息都有CRC校驗及其他檢錯措施,保證了數據出錯率極低。(9)CAN的通信介質可為雙絞線、同軸電纜或光纖,選擇靈活。(10)CAN節(jié)點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節(jié)點的操作不受影響。2.2CAN的技術規(guī)范控制器局域網(CAN)為串行通信協(xié)議,能有效地支持具有很高安全等級的分布實時控制。CAN的應用范圍很廣,從高速的網絡到低價位的多路接線都可以使用CAN。在汽車電子行業(yè)里,使用CAN連接發(fā)動機控制單元、傳感器、防剎車系統(tǒng)等等,其傳輸速度可達1Mbit/s。同時,可以將CAN安裝在卡車本體的電子控制系統(tǒng)里,諸如車燈組、電氣車窗等等,用以代替接線配線裝置。

1.報文

總線上的信息以不同格式的報文發(fā)送,但長度有限制。當總線開放時,任何連接的單元均可開始發(fā)送一個新報文。2.信息路由

在CAN系統(tǒng)中,一個CAN節(jié)點不使用有關系統(tǒng)結構的任何信息(如站地址)。這時包含如下重要概念:

系統(tǒng)靈活性——節(jié)點可在不要求所有節(jié)點及其應用層改變任何軟件或硬件的情況下,被接于CAN網絡。

報文通信——一個報文的內容由其標識符ID命名。ID并不指出報文的目的,但描述數據的含義,以便網絡中的所有節(jié)點有可能借助報文濾波決定該數據是否使它們激活。2.2.1CAN的基本概念成組——由于采用了報文濾波,所有節(jié)點均可接收報文,并同時被相同的報文激活。數據相容性——在CAN網絡中,可以確保報文同時被所有節(jié)點或者沒有節(jié)點接收,因此,系統(tǒng)的數據相容性是借助于成組和出錯處理達到的。3.位速率CAN的位速率在不同的系統(tǒng)中是不同的,而在一個給定的系統(tǒng)中,此速率惟一的,并且是固定的。4.優(yōu)先權在總線訪問期間,標識符定義了一個報文靜態(tài)的優(yōu)先權。5.遠程數據請求需要數據的節(jié)點通過發(fā)送一個遠程幀,可以請求另一個節(jié)點發(fā)送一個相應的數據幀,該數據幀與對應的遠程幀以相同標識符ID命名。6.多主站當總線開放時,任何節(jié)點均可開始發(fā)送報文,具有最高優(yōu)先權報文的發(fā)送節(jié)點獲得總線訪問權。7.仲裁當總線開放時,任何單元均可開始發(fā)送報文,若同時有兩個或更多的單元開始發(fā)送,總線訪問沖突運用逐位仲裁規(guī)則,借助標識符ID解決。這種仲裁規(guī)則可以使信息和時間均無損失。8.故障界定CAN節(jié)點有能力識別永久性故障和短暫擾動,可自動關閉故障節(jié)點。9.連接CAN串行通信鏈路是一條眾多單元均可被連接的總線。理論上,單元數目是無限的,實際上,單元總數受限于延遲時間和(或)總線的電氣負載。10.單通道由單一進行雙向位傳送的通道組成的總線,借助數據重同步實現信息傳輸。在CAN技術規(guī)范中,實現這種通道的方法不是固定的,例如,通道可以是單線(加接地線)、兩條差分連線、光纖等。11.總線數值表示總線上具有兩種互補邏輯數值:顯性電平和隱性電平。在顯性位與隱性位同時發(fā)送期間,總線上數值將是顯性位。例如,在總線的“線與”操作情況下,顯性位由邏輯“0”表示,隱性位由邏輯“1”表示。在CAN技術規(guī)范中未給出表示這種邏輯電平的物理狀態(tài)(如電壓、光、電磁波等)。12.應答每次通信,所有接收器均對接收報文的相容性進行檢查,應答一個相容報文,并標注一個不相容報文。CAN遵從OSI模型,按照OSI標準模型,CAN結構劃分為兩層:數據鏈路層和物理層。而數據鏈路層又包括邏輯鏈路控制子層LLC和媒體訪問控制子層MAC,而在CAN技術規(guī)范2.0A的版本中,數據鏈路層的LLC和MAC子層的服務和功能被描述為“目標層”和“傳送層”。CAN的分層結構和功能如圖2-1所示。2.2.2CAN的分層結構圖2-1CAN的分層結構和功能在進行數據傳送時,發(fā)出報文的單元稱為該報文的發(fā)送器。該單元在總線空閑或丟失仲裁前恒為發(fā)送器。如果一個單元不是報文發(fā)送器,并且總線不處于空閑狀態(tài),則該單元為接收器。1.數據幀數據幀由7個不同的位場組成,即幀起始、仲裁場、控制場、數據場、CRC場、應答場和幀結束。數據場長度可為0。CAN2.0A數據幀的組成如圖2-2所示。2.2.3

報文傳送和幀結構圖2-2數據幀組成

在CAN2.0B中存在兩種不同的幀格式,其主要區(qū)別在于標識符的長度,具有11位標識符的幀稱為標準幀,而包括29位標識符的幀稱為擴展幀。標準格式和擴展格式的數據幀結構如圖2-3所示。圖2-3標準格式和擴展格式數據幀(1)幀起始(SOF)。標志數據幀和遠程幀的起始,它僅由一個顯性位構成。只有在總線處于空閑狀態(tài)時,才允許站開始發(fā)送。所有站都必須同步于首先開始發(fā)送的那個站的幀起始前沿。(2)仲裁場。由標識符和遠程發(fā)送請求(RTR)組成。仲裁場如圖2-4所示。圖2-4仲裁場組成

(3)控制場。由6位組成,如圖2-5所示。圖2-5控制場組成

(4)數據場。由數據幀中被發(fā)送的數據組成,它可包括0~8個字節(jié),每個字節(jié)8位。首先發(fā)送的是最高有效位。

(5)CRC場。包括CRC序列,后隨CRC界定符。CRC場結構如圖2-6所示。CRC序列由循環(huán)冗余碼求得的幀檢查序列組成,最適用于位數小于127(BCH碼)的幀。為實現CRC計算,被除的多項式系數由包括幀起始、仲裁場、控制場、數據場(若存在的話)在內的無填充的位流給出,其15個最低位的系數為0,此多項式被發(fā)生器產生的下列多項式除(系數為模2運算):發(fā)送/接收數據場的最后一位后,CRC-RG包含有CRC序列。CRC序列后面是CRC界定符,它只包括一個隱性位。圖2-6CRC場結構

(6)應答場(ACR)。為兩位,包括應答間隙和應答界定符,如圖2-7所示。圖2-7應答場組成

(7)幀結束。每個數據幀和遠程幀均由7個隱性位組成的標志序列界定。2.遠程幀

遠程幀由6個不同分位場組成:幀起始、仲裁場、控制場、CRC場、應答場和幀結束。

同數據幀相反,遠程幀的RTR位是隱性位。遠程幀不存在數據場。DLC的數據值是沒有意義的,它可以是0~8中的任何數值。遠程幀的組成如圖2-8所示。圖2-8遠程幀的組成3.出錯幀

出錯幀由兩個不同場組成,第一個場由來自各幀的錯誤標志疊加得到,后隨的第二個場是出錯界定符。出錯幀的組成如圖2-9所示。2-9出錯幀的組成4.超載幀

超載幀包括兩個位場:超載標志和超載界定符,如圖2-10所示。5.幀間空間

數據幀和遠程幀被以稱之為幀間空間的位場分開。

幀間空間包括間歇場和總線空閑場,對于前面已經發(fā)送報文的“錯誤認可”站還有暫停發(fā)送場。對于非“錯誤認可”或已經完成前面報文的接收器,其幀間空間如圖2-11所示;對于已經完成前面報文發(fā)送的“錯誤認可”站,其幀間空間如圖2-12所示。圖2-10超載幀的組成圖2-11非“錯誤認可”幀間空間圖2-12“錯誤認可”幀間空間1.錯誤類型CANBUS有五種錯誤類型。(1)位錯誤。向總線送出一位的某個單元同時也在監(jiān)視總線,當監(jiān)視到總線位數值與送出的位數值不同時,則在該位時刻檢測到一個位錯誤。例外情況是,在仲裁場的填充位流期間或應答間隙送出隱性位而檢測到顯性位時,不視為位錯誤。送出認可錯誤標注的發(fā)送器在檢測到顯性位時,也不視為位錯誤。(2)填充錯誤。在使用位填充方法進行編碼的報文中,出現了第6個連續(xù)相同的位電平時,將檢出一個位填充錯誤。2.2.4

錯誤類型和界定(3)CRC錯誤。CRC序列是由發(fā)送器CRC計算的結果組成的。接收器以與發(fā)送器相同的方法計算CRC。由計算結果與接收到的CRC序列不相同,則檢出一個CRC錯誤。(4)形式錯誤。當固定形式的位場中出現一個或多個非法位時,則檢出一個形式錯誤。(5)應答錯誤。在應答間隙,發(fā)送器未檢測到顯性位時,則由它檢出一個應答錯誤。2.錯誤界定

為了界定故障,在每個總線單元中都設有兩種計數:發(fā)送出錯計數和接收出錯計數。1.正常位速率

為在非重同步情況下,借助理想發(fā)送器每秒發(fā)出的位數。2.正常位時間

即正常位速率的倒數。

正常位時間可分為幾個互不重疊的時間段。這些時間段包括:同步段(SYNC-SEG)、傳播段(PROP-SEG)、相位緩沖段1(PHASE-SEG1)和相位緩沖段2(PHASE-SEG2),如圖2-13所示。2.2.5

位定時與同步的基本概念圖2-13位時間的各組成部分3.同步段用于同步總線上的各個節(jié)點。4.傳播段用于補償網絡內的傳輸延遲時間,它是信號在總線上傳播時間、輸入比較器延遲和驅動器延遲之和的兩倍。5.相位緩沖段1和相位緩沖段2用于補償沿的相位誤差,通過重同步,這兩個時間段可被延長或縮短。6.采樣點它是這樣一個時點,在此點上,仲裁電平被讀,并被理解為各位的數值,位于相位緩沖段1的終點。7.信息處理時間由采樣點開始,保留用于計算子序列位電平的時間。8.時間份額由振蕩器周期派生出的一個固定時間單元。存在一個可編程的分度值,其整體數值范圍為1~32,以最小時間份額為起點,時間份額可為:時間份額=m×最小時間份額其中m為分度值。9.硬同步硬同步后,內部位時間從SYNC-SEG重新開始,因而,硬同步強迫由于硬同步引起的沿處于重新開始的位時間同步段之內。10.重同步跳轉寬度由于重同步的結果,PHASE-SEG1可被延長或PHASE-SEG2可被縮短。這兩個相位緩沖段的延長或縮短的總和上限由重同步跳轉寬度給定。重同步跳轉寬度可編程為1和4(PHASE-SEG1)之間。11.沿相位誤差沿相位誤差由沿相對于SYNC-SEG的位置給定,以時間份額度量。12.重同步當引起重同步沿的相位誤差小于或等于重同步跳轉寬度編程值時,重同步的作用與硬同步相同。當相位誤差大于重同步跳轉寬度且相位誤差為正時,則PHASE-SEG1延長總數為重同步跳轉寬度。當相位誤差大于重同步跳轉寬度且相位誤差為負時,則PHASE-SEG2縮短總數為重同步跳轉寬度。2.3CAN獨立通信控制器SJA1000SJA1000是一種獨立控制器,用于汽車和一般工業(yè)環(huán)境中的局域網絡控制。它是PHILIPS公司的PCA82C200CAN控制器(BasicCAN)的替代產品。而且,它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特點的CAN2.0B協(xié)議,SJA1000具有如下特點。(1)與PCA82C200獨立CAN控制器引腳和電氣兼容;(2)PCA82C200模式(即默認的BasicCAN模式);(3)擴展的接收緩沖器(64字節(jié)、先進先出FIFO);(4)與CAN2.0B協(xié)議兼容(PCA82C200兼容模式中的無源擴展結構);(5)同時支持11位和29位標識符;(6)位速率可達1Mbit/s;(7)PeliCAN模式擴展功能??勺x/寫訪問的錯誤計數器;可編程的錯誤報警限制;最近一次錯誤代碼寄存器;對每一個CAN總線錯誤的中斷;具有詳細位號(bitposition)的仲裁丟失中斷;單次發(fā)送(無重發(fā));只聽模式(無確認、無激活的出錯標志);支持熱插拔(軟件位速率檢測);接收過濾器擴展(4B代碼,4B屏蔽);自身信息接收(自接收請求);24MHz時鐘頻率;可以和不同微處理器接口;可編程的CAN輸出驅動器配置;增強的溫度范圍(-40℃~+125℃)。SJA1000CAN控制器主要由以下幾部分構成。1.接口管理邏輯(IML)

接口管理邏輯解釋來自CPU的命令,控制CAN寄存器的尋址,向主控制器提供中斷信息和狀態(tài)信息。2.發(fā)送緩沖器(TXB)

發(fā)送緩沖器是CPU和BSP(位流處理器)之間的接口,能夠存儲發(fā)送到CAN網絡上的完整報文。緩沖器長13個字節(jié),由CPU寫入,BSP讀出。2.3.1SJA1000內部結構3.接收緩沖器(RXB,RXFIFO)

接收緩沖器是接收過濾器和CPU之間的接口,用來接收CAN總線上的報文,并儲存接收到的報文。接收緩沖器(RXB,13B)作為接收FIFO(RXFIFO,64B)的一個窗口,可被CPU訪問。CPU在此FIFO的支持下,可以在處理報文的時候接收其他報文。4.接收過濾器(ACF)

接收過濾器把它其中的數據和接收的標識符相比較,以決定是否接收報文。在純粹的接收測試中,所有的報文都保存在RXFIFO中。5.位流處理器(BSP)

位流處理器是一個在發(fā)送緩沖器、RXFIFO和CAN總線之間控制數據流的序列發(fā)生器。它還執(zhí)行錯誤檢測、仲裁、總線填充和錯誤處理。6.位時序邏輯(BTL)

位時序邏輯監(jiān)視串行CAN總線,并處理與總線有關的位定時。在報文開始,由隱性到顯性的變換同步CAN總線上的位流(硬同步),接收報文時再次同步下一次傳送(軟同步)。BTL還提供了可編程的時間段來補償傳播延遲時間、相位轉換(例如,由于振蕩漂移)和定義采樣點和每一位的采樣次數。7.錯誤管理邏輯(EML)EML負責傳送層中調制器的錯誤界定。它接收BSP的出錯報告,并將錯誤統(tǒng)計數字通知BSP和IML。SJA1000為28引腳DIP和SO封裝,引腳如圖2-14所示。2.3.2SJA1000引腳功能圖2-14SJA1000引腳圖SJA1000在軟件和引腳上都是與它的前一款——PCA82C200獨立控制器兼容的。在此基礎上它增加了很多新的功能。為了實現軟件兼容,SJA1000增加修改了兩種模式:BasicCAN模式:PCA82C200兼容模式;PeliCAN模式:擴展特性。

工作模式通過時鐘分頻寄存器中的CAN模式位來選擇。復位默認模式是BasicCAN模式。

在PeliCAN模式下,SJA1000有一個含很多新功能的重組寄存器。SJA1000包含了設計在PCA82C200中的所有位及一些新功能位,PeliCAN模式支持CAN2.0B協(xié)議規(guī)定的所有功能(29位標識符)。2.3.3SJA1000的工作模式SJA1000的主要新功能:(1)

接收、發(fā)送標準幀和擴展幀格式信息;(2)

接收FIFO(64個字節(jié));(3)

用于標準幀和擴展幀的單/雙接收過濾器(含屏蔽和代碼寄存器);(4)

讀/寫訪問的錯誤計數器;(5)可編程的錯誤限制報警;(6)

最近一次的誤碼寄存器;(7)

對每一個CAN總線錯誤的錯誤中斷;(8)

具有詳細位號的仲裁丟失中斷;(9)一次性發(fā)送(當錯誤或仲裁丟失時不重發(fā));(10)

只聽模式(CAN總線監(jiān)聽,無應答,無錯誤標志);(11)

支持熱插拔(無干擾軟件驅動的位速率檢測);(12)

硬件禁止CLKOUT輸出。1.BasicCAN地址分配SJA1000對微控制器而言是內存管理的I/O器件。兩器件的獨立操作是通過像RAM一樣的片內寄存器修正來實現的。BasicCAN地址分配如表2-1所示。2.3.4BasicCAN功能介紹表2-1BasicCAN地址分配表段CAN地址工

式復

式讀寫讀寫控制

0控制控制控制控制1(FFH)命令(FFH)命令2狀態(tài)-狀態(tài)-3中斷-中斷-4(FFH)-接收代碼接收代碼5(FFH)-接收屏蔽接收屏蔽6(FFH)-總線定時0總線定時07(FFH)-總線定時1總線定時18(FFH)-輸出控制輸出控制9測試測試測試測試段CAN地址工

式復

式讀寫讀寫發(fā)送緩沖器

10標識符(10~3)標識符(10~3)(FFH)-11標識符(2~0)RTR和DLC標識符(2~0)RTR和DLC(FFH)-12數據字節(jié)1數據字節(jié)1(FFH)-13數據字節(jié)2數據字節(jié)2(FFH)-14數據字節(jié)3數據字節(jié)3(FFH)-15數據字節(jié)4數據字節(jié)4(FFH)-16數據字節(jié)5數據字節(jié)5(FFH)-17數據字節(jié)6數據字節(jié)6(FFH)-18數據字節(jié)7數據字節(jié)7(FFH)-19數據字節(jié)8數據字節(jié)8(FFH)-表2-1BasicCAN地址分配表(續(xù)表1)段CAN地址工

式復

式讀寫讀寫接收緩沖器20標識符(10~3)標識符(10~3)標識符(10~3)標識符(10~3)21標識符(2~0)RTR和DLC標識符(2~0)RTR和DLC標識符(2~0)RTR和DLC標識符(2~0)RTR和DLC22數據字節(jié)1數據字節(jié)1數據字節(jié)1數據字節(jié)123數據字節(jié)2數據字節(jié)2數據字節(jié)2數據字節(jié)224數據字節(jié)3數據字節(jié)3數據字節(jié)3數據字節(jié)325數據字節(jié)4數據字節(jié)4數據字節(jié)4數據字節(jié)426數據字節(jié)5數據字節(jié)5數據字節(jié)5數據字節(jié)527數據字節(jié)6數據字節(jié)6數據字節(jié)6數據字節(jié)628數據字節(jié)7數據字節(jié)7數據字節(jié)7數據字節(jié)729數據字節(jié)8數據字節(jié)8數據字節(jié)8數據字節(jié)8

30(FFH)-(FFH)-

31時鐘分頻器時鐘分頻器時鐘分頻器時鐘分頻器表2-1BasicCAN地址分配表(續(xù)表2)2.控制段(1)控制寄存器(CR)

控制寄存器的內容是用于改變CAN控制器的狀態(tài)。這些位可以被微控制器置位或復位,微控制器可以對控制寄存器進行讀/寫操作。控制寄存器各位的功能如表2-2所示。表2-2控制寄存器(地址0)位符號名稱值功

能CR.7---保留CR.6---保留CR.5---保留CR.4OIE超載中斷使能1使能:如果數據超載位置位,微控制器接收一個超載中斷信號(見狀態(tài)寄存器)0禁止:微控制器不從SJA1000接收超載中斷信號表2-2控制寄存器(地址0)(續(xù)表)位符號名稱值功

能CR.3EIE錯誤中斷使能1使能:如果出錯或總線狀態(tài)改變,微控制器接收一個錯誤中斷信號(見狀態(tài)寄存器)0禁止:微控制器不從SJA1000接收錯誤中斷信號CR.2TIE發(fā)送中斷使能1使能:當報文被成功發(fā)送或發(fā)送緩沖器可再次被訪問時(例如,一個夭折發(fā)送命令后),SJA1000向微控制器發(fā)出一次發(fā)送中斷信號0禁止:SJA1000不向微控制器發(fā)送中斷信號CR.1RIE接收中斷使能1使能:報文被無錯誤接收時,SJA1000向微控制器發(fā)出一次中斷信號0禁止:SJA1000不向微控制器發(fā)送中斷信號CR.0RR復位請求1常態(tài):

SJA1000檢測到復位請求后,忽略當前發(fā)送/接收的報文,進入復位模式0非常態(tài):復位請求位接收到一個下降沿后,SJA1000回到工作模式

(2)命令寄存器(CMR)

命令位初始化SJA1000傳輸層上的動作。命令寄存器對微控制器來說是只寫存儲器。如果去讀這個地址,返回值是“11111111”。兩條命令之間至少有一個內部時鐘周期,內部時鐘的頻率是外部振蕩頻率的1/2。命令寄存器各位的功能如表2-3所示。表2-3命令寄存器(地址1)位符號名稱值功

能CMR.7---保留CMR.6---保留CMR.5---保留CMR.4GTS睡眠1睡眠:如果沒有CAN中斷等待和總線活動,SJA1000進入睡眠模式0喚醒:SJA1000正常工作模式位符號名稱值功

能CMR.3CDO清除超載狀態(tài)1清除:清除數據超載狀態(tài)位0無作用CMR.2RRB釋放接收緩沖器1釋放:接收緩沖器中存放報文的內存空間將被釋放0無作用CMR.1AT夭折發(fā)送1常態(tài):如果不是在處理過程中,等待處理的發(fā)送請求將忽略0非常態(tài):無作用CMR.0TR發(fā)送請求1常態(tài):報文被發(fā)送0非常態(tài):無作用表2-3命令寄存器(地址1)(續(xù)表)

(3)狀態(tài)寄存器(SR)

狀態(tài)寄存器的內容反映了SJA1000的狀態(tài)。狀態(tài)寄存器對微控制器來說是只讀存儲器,各位的功能如表2-4所示。表2-4狀態(tài)寄存器(地址2)位符號名稱值功

能SR.7BS總線狀態(tài)1總線關閉:SJA1000退出總線活動0總線開啟:SJA1000進入總線活動SR.6ES出錯狀態(tài)1出錯:至少出現一個錯誤計數器滿或超過CPU報警限制0正常:兩個錯誤計數器都在報警限制以下SR.5TS發(fā)送狀態(tài)1發(fā)送:SJA1000正在傳送報文0空閑:沒有要發(fā)送的報文位符號名稱值功

能SR.4RS接收狀態(tài)1接收:SJA1000正在接收報文0空閑:沒有正在接收的報文SR.3TCS發(fā)送完畢狀態(tài)1完成:最近一次發(fā)送請求被成功處理0未完成:當前發(fā)送請求未處理完畢SR.2TBS發(fā)送緩沖器狀態(tài)1釋放:CPU可以向發(fā)送緩沖器寫報文0鎖定:CPU不能訪問發(fā)送緩沖器;有報文正在等待發(fā)送或正在發(fā)送SR.1DOS數據超載狀態(tài)1超載:報文丟失,因為RXFIFO中沒有足夠的空間來存儲它0未超載:自從最后一次清除數據超載命令執(zhí)行,無數據超載發(fā)生SR.0RBS接收緩沖狀態(tài)1滿:RXFIFO中有可用報文0空:無可用報文表2-4狀態(tài)寄存器(地址2)續(xù)表(4)中斷寄存器(IR)中斷寄存器允許識別中斷源。當寄存器的一位或多位被置位時,(低電位有效)引腳被激活。該寄存器被微控制器讀過之后,所有位被復位,這將導致引腳上的電平漂移。中斷寄存器對微控制器來說是只讀存儲器,各位的功能如表2-5所示。表2-5中斷寄存器(地址3)位符號名稱值功

能IR.7---保留IR.6---保留IR.5---保留IR.4WUI喚醒中斷1置位:退出睡眠模式時此位被置位0復位:微控制器的任何讀訪問將清除此位位符號名稱值功

能IR.3DOI數據超載中斷1置位:當數據超載中斷使能位被置為1時,數據超載狀態(tài)位由低到高的跳變,將其置位0復位:微控制器的任何讀訪問將清除此位IR.2EI錯誤中斷1置位:錯誤中斷使能時,錯誤狀態(tài)位或總線狀態(tài)位的變化會置位此位0復位:微控制器的任何讀訪問將清除此位IR.1TI發(fā)送中斷1置位:發(fā)送緩沖器狀態(tài)從低到高的跳變(釋放)和發(fā)送中斷使能時,此位被置位0復位:微控制器的任何讀訪問將清除此位IR.0RI接收中斷1置位:當接收FIFO不空和接收中斷使能時置位此位0復位:微控制器的任何讀訪問將清除此位表2-5中斷寄存器(地址3)(續(xù)表)

(5)驗收代碼寄存器(ACR)

復位請求位被置高(當前)時,這個寄存器是可以訪問(讀/寫)的。如果一條報文通過了接收過濾器的測試而且接收緩沖器有空間,那么描述符和數據將被分別順次寫入RXFIFO。當報文被正確的接收完畢,則有:接收狀態(tài)位置高(滿)接收中斷使能位置高(使能),接收中斷置高(產生中斷)

驗收代碼位(AC.7~AC.0)和報文標識符的高8位(ID.10~ID.3)必須相等,或者驗收屏蔽位(AM.7~AM.0)的所有位為1。即如果滿足以下方程的描述,則予以接收。[(ID.10~ID.3)≡(AC.7~AC.0)]∨(AM.7~AM.0)≡11111111驗收代碼寄存器各位功能如表2-6所示。表2-6驗收代碼寄存器(地址4)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.0

(6)驗收屏蔽寄存器(AMR)

如果復位請求位置高(當前),這個寄存器可以被訪問(讀/寫)。驗收屏蔽寄存器定義驗收代碼寄存器的哪些位對接收過濾器是“相關的”或“無關的”(即可為任意值)。

當AM.i=0時,是“相關的”;

當AM.i=1時,是“無關的”(i=0,1,…,7)。

驗收屏蔽寄存器各位的功能如表2-7所示。表2-7驗收屏蔽寄存器(地址5)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.03.發(fā)送緩沖區(qū)

發(fā)送緩沖區(qū)的全部內容如表2-8所示。緩沖器是用來存儲微控制器要SJA1000發(fā)送的報文的。它被分為描述符區(qū)和數據區(qū)。發(fā)送緩沖器的讀/寫只能由微控制器在工作模式下完成。在復位模式下讀出的值總是“FFH”。表2-8發(fā)送緩沖區(qū)區(qū)CAN地址名稱位76543210描述符10標識符字節(jié)1ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.311標識符字節(jié)2ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.0數據12TX數據1發(fā)送數據字節(jié)113TX數據2發(fā)送數據字節(jié)214TX數據3發(fā)送數據字節(jié)315TX數據4發(fā)送數據字節(jié)4區(qū)CAN地址名稱位76543210數據16TX數據5發(fā)送數據字節(jié)517TX數據6發(fā)送數據字節(jié)618TX數據7發(fā)送數據字節(jié)719TX數據8發(fā)送數據字節(jié)8表2-8發(fā)送緩沖區(qū)(續(xù)表)(1)標識符(ID)標識符有11位(ID0~ID10)。ID10是最高位,在仲裁過程中是最先被發(fā)送到總線上的。標識符就象報文的名字。它在接收器的接收過濾器中被用到,也在仲裁過程中決定總線訪問的優(yōu)先級。標識符的值越低,其優(yōu)先級越高。這是因為在仲裁時有許多前導顯性位所致。(2)遠程發(fā)送請求(RTR)如果此位置1,總線將以遠程幀發(fā)送數據。這意味著此幀中沒有數據字節(jié)。然而,必須給出正確的數據長度碼,數據長度碼由具有相同標識符的數據幀報文決定。如果RTR位沒有被置位,數據將以數據長度碼規(guī)定的長度來傳送數據幀。(3)數據長度碼(DLC)報文數據區(qū)的字節(jié)數根據數據長度碼編制。在遠程幀傳送中,因為RTR被置位,數據長度碼是不被考慮的。這就迫使發(fā)送/接收數據字節(jié)數為0。然而,數據長度碼必須正確設置以避免兩個CAN控制器用同樣的識別機制啟動遠程幀傳送而發(fā)生總線錯誤。數據字節(jié)數是0-8,是以如下方法計算的:數據字節(jié)數=8×DLC.3+4×DLC.2+2×DLC.1+DLC.0為了保持兼容性,數據長度碼不超過8。如果選擇的值超過8,則按照DLC規(guī)定認為是8。(4)數據區(qū)傳送的數據字節(jié)數由數據長度碼決定。發(fā)送的第一位是地址12單元的數據字節(jié)1的最高位。4.接收緩沖區(qū)

接收緩沖區(qū)的全部列表和發(fā)送緩沖區(qū)類似。接收緩沖區(qū)是RXFIFO中可訪問的部分,位于CAN地址的20~29之間。5.寄存器的復位值

檢測到有復位請求后將中止當前接收/發(fā)送的報文而進入復位模式。當復位請求位出現了1到0的變化時,CAN控制器將返回操作模式。CAN控制器的內部寄存器對CPU來說是內部在片存儲器。因為CAN控制器可以工作于不同模式(操作/復位),所以必須要區(qū)分兩種不同內部地址的定義。從CAN地址32起所有的內部RAM(80字節(jié))被映像為CPU的接口。2.3.5PeliCAN功能介紹2.3.6BasicCAN和PeliCAN的公用寄存器1.總線時序寄存器0

總線時序寄存器0(BTR0)如表2-9所示。定義了波特率預置器(BaudRatePrescaler-BRP)和同步跳轉寬度(SJW)的值。復位模式有效時,這個寄存器是可以被訪問(讀/寫)的。

如果選擇的是PeliCAN模式,此寄存器在操作模式中是只讀的。在BasicCAN模式中總是“FFH”。

表2-9總線時序寄存器0(地址6)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SJW.1SJW.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0(1)波特率預置器位域

位域BRP使得CAN系統(tǒng)時鐘的周期tSCL是可編程的,而tSCL決定了各自的位定時。CAN系統(tǒng)時鐘由如下公式計算:tSCL=2tCLK×(32×BRP.5+16×BRP.4+8×BRP.3+4×BRP.2+2×BRP.1+BRP.0+1)

式中:tCLK=XTAL的振蕩周期=1/fXTAL

(2)同步跳轉寬度位域

為了補償在不同總線控制器的時鐘振蕩器之間的相位漂移,任何總線控制器必須在當前傳送的任一相關信號邊沿重新同步。同步跳轉寬度tSJW定義了一個位周期可以被一次重新同步縮短或延長的時鐘周期的最大數目,它與位域SJW的關系是:tSJW=tSCL×(2×SJW.1+SJW.0+1)2.總線時序寄存器1總線時序寄存器1(BTR1)如表2-10所示,定義了一個位周期的長度、采樣點的位置和在每個采樣點的采樣數目。在復位模式中,這個寄存器可以被讀/寫訪問。在PeliCAN模式的操作模式中,這個寄存器是只讀的。在BasicCAN模式中總是“FFH”。表2-10總線時序寄存器1(地址7)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0

(1)采樣位

采樣位(SAM)的功能說明如表2-11所示。表2-11采樣位的功能說明位值功

能SAM13次:總線采樣3次;建議在低/中速總線(A和B級)上使用,這對過濾總線上的毛刺波是有效的0單次:總線采樣1次;建議使用在高速總線上(SAEC級)

(2)時間段1和時間段2位域

時間段1(TSEG1)和時間段2(TSEG2)決定了每一位的時鐘周期數目和采樣點的位置,3.輸出控制寄存器

輸出控制寄存器(OCR)如表2-12所示。允許由軟件控制建立不同輸出驅動的配置。在復位模式中此寄存器可被讀/寫訪問。在PeliCAN模式的操作模式中,這個寄存器是只讀的。在BasicCAN模式中總是“FFH”。表2-12輸出控制寄存器(地址8)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE04.時鐘分頻寄存器

時鐘分頻寄存器(CDR)控制輸出給微控制器的CLKOUT頻率,它可以使CLKOUT引腳失效。另外,它還控制著TX1上的專用接收中斷脈沖、接收比較器旁路和BasicCAN模式與PeliCAN模式的選擇。硬件復位后寄存器的默認狀態(tài)是Motorola模式(00000101,12分頻)和Intel模式(00000000,2分頻)。軟件復位(復位請求/復位模式)或總線關閉時,此寄存器不受影響。保留位(CDR.4)總是0。應用軟件應向此位寫0,目的是與將來可能使用此位的特性兼容。2.4CAN總線收發(fā)器CAN作為一種技術先進、可靠性高、功能完善、成本低的遠程網絡通信控制方式,已廣泛應用于汽車電子、自動控制、電力系統(tǒng)、樓宇自控、安防監(jiān)控、機電一體化、醫(yī)療儀器等自動化領域。目前,世界眾多著名半導體生產商推出了獨立的CAN通信控制器,而有些半導體生產商(例如INTEL、NXP、Mirochip、Samsung、NEC、ST、TI等公司),還推出了內嵌CAN通信控制器的MCU、DSP和ARM微控制器。為了組成CAN總線通信網絡,NXP和安森美(ON半導體)等公司推出了CAN總線驅動器。2.4.1PCA82C250/251CAN總線收發(fā)器PCA82C250/251收發(fā)器是協(xié)議控制器和物理傳輸線路之間的接口。此器件對總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力,可以在汽車和一般的工業(yè)應用上使用。PCA82C250/251收發(fā)器的主要特點如下:(1)完全符合ISO11898標準;(2)高速率(最高達1Mbit/s);(3)具有抗汽車環(huán)境中的瞬間干擾,保護總線能力;(4)斜率控制,降低射頻干擾(RFI);(5)差分收發(fā)器,抗寬范圍的共模干擾,抗電磁干擾(EMI);(6)

熱保護;(7)

防止電源和地之間發(fā)生短路;(8)低電流待機模式;(9)

未上電的節(jié)點對總線無影響;(10)

可連接110個節(jié)點;(11)

工作溫度范圍:-40℃~+125℃。1.功能說明PCA82C250/251驅動電路內部具有限流電路,可防止發(fā)送輸出級對電源、地或負載短路。2.引腳介紹PCA82C250/251為8引腳DIP和SO兩種封裝,引腳如圖2-16所示。圖2-16PCA82C250/251引腳圖1.功能說明TJA1051是一款高速CAN收發(fā)器,是CAN控制器和物理總線之間的接口,為CAN控制器提供差動發(fā)送和接收功能。該收發(fā)器專為汽車行業(yè)的高速CAN應用設計,傳輸速率高達1Mbit/s。TJA1051是高速CAN收發(fā)器TJA1050的升級版本,改進了電磁兼容性(EMC)和靜電放電(ESD)性能,具有如下特性:(1)完全符合ISO11898-2標準;(2)收發(fā)器在斷電或處于低功耗模式時,在總線上不可見;(3)TJA1051T/3和TJA1051TK/3的I/O口可直接與3V~5V的微控制器接口連接。2.4.2TJA1051CAN總線收發(fā)器TJA1051是高速CAN網絡節(jié)點的最佳選擇,TJA1051不支持可總線喚醒的待機模式。2.引腳介紹TJA1051有SO8和HVSON8兩種封裝,TJA1051引腳如圖2-17所示。圖2-17TJA1051引腳圖2.5CAN總線節(jié)點設計實例2.5.1CAN節(jié)點硬件設計

采用AT89S52單片微控制器、獨立CAN通信控制器SJA1000、CAN總線驅動器PCA82C250及復位電路IMP708的CAN應用節(jié)點電路如圖2-18所示。

在圖2-18中,IMP708具有兩個復位輸出RESET和

,分別接至AT89S52單片微控制器和SJA1000CAN通信控制器。當按下按鍵S時,為手動復位。圖2-18CAN應用節(jié)點電路1.BasicCAN程序設計CAN應用節(jié)點的程序設計主要分為三部分:初始化子程序、發(fā)送子程序、接收子程序。(1)CAN初始化程序①程序流程圖。CAN初始化子程序流程圖如圖2-19所示。

②程序清單。CAN初始化子程序清單參照書中內容。2.5.2CAN節(jié)點軟件設計圖2-19CAN初始化子程序流程圖(2)CAN接收子程序

①程序流程圖。CAN接收子程序流程圖如圖2-20所示。②CAN接收子程序清單參照書中內容。圖2-20CAN接收子程序流程圖(3)CAN發(fā)送子程序

①程序流程圖。CAN發(fā)送子程序流程圖如圖2-21所示②CAN發(fā)送子程序清單參照書中內容。圖2-21CAN發(fā)送子程序流程圖2.6基于PCI總線的CAN智能網絡通信

適配器的設計基于CAN現場總線的數據采集與監(jiān)控(SCADA)系統(tǒng)結構如圖2-22所示。2.6.1SCADA系統(tǒng)結構圖2-22基于CAN現場總線的SCADA系統(tǒng)結構圖1.PCI總線的發(fā)展和基本特點PCI總線的英文全稱為:PeripheralComponentInterconnectSpercialInterestGroup,簡稱PCISIG,即外設部件互連。PCI總線是由Intel公司提出的。IBM公司為保護自身的利益,將計算機總線由ISA總線升級到MCA總線,且沒有對外公開總線的技術標準。于是,Compaq,AST,Epson,HP等9家公司在1988年聯(lián)合推出了一種兼容性更強的EISA總線。到了1991年下半年,Intel公司首先提出了PCI總線的概念,并與IBM,AST,HP,DEC100多家公司聯(lián)合共謀計算機總線的發(fā)展大業(yè),于1993年推出了PCI局部總線。2.6.2PCI總線概述把信號分為系統(tǒng)信號(2個)、地址和數據信號(37個)、接口控制信號(7個)、仲裁信號(2個)、錯誤報告信號(2個)、中斷信號(4個)、高速緩存支持信號(2個)、64位擴展信號(39個)和測試信號(5個)等。2.總線命令字PCI的總線命令字有四位,64位擴展位,命令字有8位。3.PCI總線基本協(xié)議PCI上的基本總線傳輸機制是突發(fā)成組傳輸。一個突發(fā)傳輸由一個地址器和一個(多個)數據器組成。PCI支持存儲器空間和I/O空間的突發(fā)傳輸。這里的突發(fā)傳輸是指主橋,位于主處理機和PCI總線之間,如圖2-23所示。圖2-23計算機的PCI總線示意圖1.簡介CY7C09449PV是Cypress公司生產的半導體PCI-DP系列的PCI接口控制器之一,它提供了可與多種常用的微處理器直接連接的PCI主/從接口,一個128Kbit的雙端口SRAM用作局部微處理器和PCI總線間的共享存儲器。CY7C09449PV控制器的主要特點為:具有128Kbit的雙端口共享存儲器;可以作為主設備和從設備接口使用,符合PCI2.2規(guī)范;內置主橋能力;可以直接與多種微處理器接口;具有I2O(IntelligentInput&Output的縮寫)信息傳送單元,包括4個深度為32的FIFO;它的局部總線時鐘頻率最高可達50MHz;采用單一3.3V電源供電,與3V和5V的PCI總線信號兼容。 2.6.3PCI控制器CY7C09449PV2.功能說明CY7C09449PV包括許多共享資源,它為局部總線和PCI總線之間進行高效的數據傳輸提供了通道。其結構如圖2-24所示。圖2-24CY7C09449結構示意圖3.信號終結PCI總線信號應按PCI2.2規(guī)范終結。通常終結是由PCI系統(tǒng)提供。如果CY7C09449PV被用于插卡或者其它設備作為PCI總線的一部分時,就不能使用終結。對于嵌入式系統(tǒng)來說,終結是系統(tǒng)設計的一部分,而不是CY7C09449PV的一部分。4.存儲器映射CY7C09449PV的內部資源如表2-14所示。存儲器單元內容地址(字節(jié)偏移)大小I2O相關寄存器0X0000-0X03FF1KB工作寄存器0X0400-0X07FF1KB保留0X0800-0X1FFF6KBPCI總線直接存取空間0X2000-0X3FFF8KB共享存儲器0X4000-0X7FFF16KB表2-14存儲器映射示意圖5.PCI總線的配置空間CY7C09449PV的PCI總線工作在PCI規(guī)范2.2版。本節(jié)主要介紹PCI配置空間中的幾個將在本系統(tǒng)中使用到的寄存器。CY7C09449PV的PCI配置空間大小為256字節(jié)。6.局部總線CY7C09449PV提供了可以與幾個處理器類型直接連接的可配置的局部處理器總線接口。這個接口通過CLKIN信號同步。CLKIN信號可以連接到一個局部處理器、PCI時鐘的一個緩沖輸出或者一個獨立的時鐘源。為了在PCI時鐘頻率下運行局部接口,可以將PCLKOUT[2:0]引腳的任意一個連接到CLKIN上。基本的局部處理器總線交易包括一個地址周期,緊接著是一個或多個數據周期。1.系統(tǒng)功能CAN智能網絡通信適配器主要是用來承擔上位計算機和CAN智能測控節(jié)點等下位機之間的數據交互任務的。當現場有數據要送到監(jiān)控PC機時,智能網絡通信適配器負責接收來自現場的數據信息,并立即轉發(fā)給PC機進行監(jiān)視和處理;當PC機有監(jiān)控命令、輸出信息或組態(tài)參數需要傳送至下位機時,智能網絡適配器也要實現轉發(fā)功能,及時地將PC機的數據發(fā)送至CAN網絡,并由目標下位機接收,以控制相應下位機單元的動作。2.6.4CAN智能網絡通信適配器的設計2.硬件結構和工作過程基于PCI總線的CAN智能網絡通信適配器硬件結構如圖2-26所示。適配器主要由CAN總線驅動器PCA82C250、CAN通信控制器SJA1000、INTEL80C88CPU、譯碼電路EPM7064和EEPROM以及與PC機相連接的PCI控制器CY7C09449PV等構成。板內INTEL80C88內部的監(jiān)控程序控制CAN總線的接收、發(fā)送及數據處理,并通過內含雙口RAM的PCI控制器CY7C09449PV與PC機進行通信,實現下位機智能測控節(jié)點與上位PC機的數據交換。圖2-26CAN智能網絡通信適配器硬件結構圖圖2-27CAN智能網絡通信適配器的外形

基于PCI總線的CAN智能網絡通信適配器的外形如圖2-27所示。3.CAN數據包格式

CAN通信數據傳輸采用短幀結構,每幀最多發(fā)送8個字節(jié)有效數據,在傳輸的數據量超過8個字節(jié)有效數據時,給用戶編程帶來了一定的困難。為此,定義了如圖2-28所示的CAN的數據包格式,利用該格式,只需要將待傳輸的數據進行相應的解包和打包操作即可實現數據的單幀和多幀傳輸,有效地簡化了數據通信。采用圖2-28所示的CAN數據包格式,無論是單幀傳輸還是多幀傳輸,只要把數據填入相應的發(fā)送緩沖區(qū)即可,在接收方,則將數據解包并放至接收緩沖區(qū)。與上述定義的數據包格式相對應,CAN的多幀數據傳輸幀結構如圖2-29所示。a)發(fā)送數據包格式 b)接收數據包格式

圖2-28發(fā)送數據包和接收數據包格式圖2-29CAN多幀數據傳輸幀結構圖2.7CAN智能測控節(jié)點的設計在基于CAN現場總線的SCADA系統(tǒng)中,需要設計對工業(yè)現場實現測控的智能節(jié)點。CAN智能測控節(jié)點的結構如圖2-42所示。2.7.1CAN智能測控節(jié)點的一般結構圖2-42CAN智能測控節(jié)點結構圖在圖2-42中,以微控制器為核心,通過光電耦合器與工業(yè)現場相連。信號處理部分主要包括A/D、D/A電路,低通濾波電路,信號放大電路,電流/電壓轉換電路,實現過程輸入通道和過程輸出通道的功能。串行EEPROM和WDT電路用于存放設定參數及監(jiān)視微控制器的正常工作,DIP設定開關用于通信波特率和通信地址的設定。CAN通信控制器和CAN收發(fā)器實現CAN網絡功能。另外,還有DC/DC電源模塊,將輸入的24V電源轉換成+5V和其它所需電源。下面以FBCAN-8DI八路數字量輸入模塊為例介紹智能測控節(jié)點的設計。1.硬件結構FBCAN-8DI八路數字量輸入智能節(jié)點的硬件框圖如圖2-43所示。2.7.2FBCAN-8DI8路數字量輸入智能節(jié)點

的設計圖2-43FBCAN-8DI智能節(jié)點的硬件結構框圖在圖2-43中,微控制器選用Philips公司的P87C51RD2,采用74HC245三態(tài)緩沖器讀取數字量的狀態(tài),CAN通信控制器和收發(fā)器采用Philips公司的SJA1000和P82C250,通過74HC245讀取設定開關的狀態(tài),X5045為Xicor公司的串行E2PROM和WDT一體化的電路,DC/DC電路可選用功率為2W的電源模塊,VD1為狀態(tài)指示燈。在該智能節(jié)點的設計中,設定開關的口地址為7FFFH,SJA1000的地址為BF00H,讀取數字量的口地址為DFFFH。2.數字量輸入電路數字量輸入電路如圖2-44所示。圖2-44數字量輸入電路當跳線器JP1的1-2短路,跳線器JP2的1-2斷開、2-3短路時,輸入端DI+和DI-可以接一干接點信號。當跳線器JP1的1-2斷開,跳線器JP2的1-2短路、2-3斷開時,輸入端DI+和DI-可以接有源接點。在圖2-44中,開關量輸入端所用電源為+24V,也可以是+15V或+5V電源,只需改變電阻R1的阻值即可。3.DC/DC電源電路在智能節(jié)點的設計中,供電電源一般為+24V,而智能節(jié)點內部通常需要+5V或其它電源(如放大器、A/D、D/A等器件所需電源),因此需要將+24V電源進行DC/DC變換,產生所需電源,圖2-45為將+24V變成+5V的DC/DC變換電路。在圖2-45中,VD1為防止電源反接二極管,VD2為TVS抗浪涌二極管,C1~C2為濾波電容。圖2-45DC/DC電路4.程序設計在FBCAN-8DI智能節(jié)點的設計中,采用第2.6節(jié)介紹的CAN數據包格式。程序主要包括主程序、讀取數字量狀態(tài)子程序、定時器0中斷服務程序、CAN數據包接收中斷服務程序、CAN數據包發(fā)送子程序。另外,還有參數配置程序,網絡檢查程序,WDT及串行EEPROM數據讀寫等程序。程序清單從略。2.8CAN通信轉換器的設計CAN通信轉換器可以將RS-232、RS-485或USB串行口轉換為CAN現場總線。1.CAN通信轉換器性能指標CAN通信轉換器的性能指標如下:支持CAN2.0A和CAN2.0B協(xié)議,與ISO11898兼容;可方便的實現RS232接口與CAN總線的轉換;CAN總線接口為DB9針式插座,符合CIA標準;CAN總線波特率可選,最高可達1Mbit/s;2.8.1CAN通信轉換器概述串口波特率可選,最高可達115200bit/s;由PCI總線或微機內部電源供電,無需外接電源;隔離電壓2000Vrms;外形尺寸:130mm×110mm。2.CAN節(jié)點地址設定CAN通信轉換器上的JP1用于設定通信轉換器的CAN節(jié)點地址。跳線短接為“0”,斷開為“1”。3.串口速率和CAN總線速率設定CAN通信轉換器上的JP2用于設定串口及CAN通信波特率。其中JP2.3~JP2.1用于設定串口速率,如表2-15所示。JP2.6~JP2.4用于設定CAN波特率,如表2-16所示。表2-15串口波特率設定波特率(單位bit/s)JP2.3JP2.2JP2.12400bit/s0009600bit/s00119200bit/s01038400bit/s01157600bit/s100115200bit/s101表2-16CAN波特率設定CAN波特率JP2.6JP2.5JP2.45kbit/s00010kbit/s00120kbit/s01040kbit/s01180kbit/s100200kbit/s101400kbit/s110800kbit/s1114.通信協(xié)議CAN通信轉換器的通信協(xié)議格式如下:開始字節(jié)(40H)+CAN數據包(1~256字節(jié))+校驗字節(jié)(1字節(jié))+結束字節(jié)(23H)校驗字節(jié)為從開始字節(jié)(包括開始字節(jié)40H)到CAN幀中最后一個數據字節(jié)(包括最后一個數據字節(jié))之間的所有字節(jié)的異或和。結束符為23H,表示數據結束。ST公司生產的STM32F4系列嵌入式微控制器的引腳和軟件完全兼容STM32F1系列,如果STM32F1系列的用戶想要更大的SRAM容量、更高的性能和更快速的外設接口,則可輕松地從STM32F1升級到STM32F4系列。除引腳和軟件兼容的STM32F1系列外,STM32F4的主頻(168MHz)高于STM32F1系列(72MHz),并支持單周期DSP指令和浮點單元、更大的SRAM容量(192KB)、512KB~1MB的嵌入式閃存以及影像、網絡接口和數據加密等更先進的外設。

STM32F4的單周期DSP指令將會催生數字信號控制器(DSC)市場,適用于高端電機控制、醫(yī)療設備和安全系統(tǒng)等應用。2.8.2STM32F4嵌入式微控制器簡介1.STM32F4系列嵌入式微控制器的技術優(yōu)勢STM32F4系列嵌入式微控制器具有如下技術優(yōu)勢:(1)采用多達7重AHB總線矩陣和多通道DMA控制器,支持程序執(zhí)行和數據傳輸并行處理,數據傳輸速率極快;(2)內置的單精度FPU提升控制算法的執(zhí)行速度給目標應用增加更多功能,提高代碼執(zhí)行效率,縮短研發(fā)周期,減少了定點算法的縮放比和飽和負荷;(3)高集成度:最高1MB片上閃存、192KBSRAM、復位電路、內部RC振蕩器、PLL鎖相環(huán)、低于1μA的實時時鐘(誤差低于1s);(4)在電池或者較低電壓供電且要求高性能處理、低功耗運行的應用中,STM32F4更多的靈活性可實現高性能和低功耗的目的;在待機或電池備用模式下,4KB備份SRAM數據仍然能保存;在VBAT模式下實時時鐘功耗小于1μA;內置可調節(jié)穩(wěn)壓器,準許用戶選擇高性能或低功耗工作模式;(5)出色的開發(fā)工具和軟件生態(tài)系統(tǒng),提供各種集成開發(fā)環(huán)境、元語言工具、DSP固件庫、低價入門工具、軟件庫和協(xié)議棧;(6)優(yōu)越且具有創(chuàng)新性的外設;(7)互聯(lián)性:相機接口、加密/哈希硬件處理器、支持IEEE1588V210/100M以太網接口、2個USBOTG(其中1個支持高速模式);(8)音頻:音頻專用鎖相環(huán)和2個全雙工I2S;(9)最多15個通信接口(包括6個10.5Mbit/s的USART、3個42Mbit/s的SPI,3個I2C、2個CAN和1個SDIO);(10)模擬外設:2個12位DAC,3個12位ADC,采樣速率達到2.4MSPS,在交替模式下達7.2MSPS;(11)最多17個定時器:16位和32位定時器,最高頻率168MHz。2.STM32F4系列產品介紹

STM32F4系列嵌入式微控制器產品介紹如下。(1)STM32F405xx和STM32F407xx系列STM32F405xx和STM32F407xx系列是Cortex-M4F32位RISC、核心頻率高達168MHz的DSC。Cortex-M4的浮點單元(FPU)支持所有ARM單精度的數據處理指令和數據類型的單精度,同時實現了一套完整的DSP指令和內存保護單(MPU),從而提高應用程序的安全性。STM32F405xx和STM32F407xx系列采用高速存儲器,高達4KB的備份SRAM,增強的IO均連接到兩條APB外設總線,包括兩個AHB總線和一個32位的多AHB總線矩陣。所有STM32F405xx和STM32F407xx系列設備提供3個12位ADC,2個DAC,低功耗RTC,12個通用16位定時器,包括2個PWM定時器,電機控制,2個通用32位定時器,1個真正的數字隨機發(fā)生器(RNG),并且配備了標準和先進的通信接口。STM32F405xx和STM32F407xx系列主要通信接口如下:3個IC接口;3個SPI接口,2個IS全雙工接口;可以通過專用的內部音頻PLL或允許通過外部時鐘來提供同步時鐘;4個USART,加上2個UART;1個全速USBOTG和1個高速USBOTG(使用ULPI);2個CAN總線接口;1個SDIO/MMC接口;以太網和相機接口(STM32F407xx上有)。STM32F405xx和STM32F407xx系列工作在-40~+105℃之間,電源1.8~3.6V。當設備工作在0~70℃且PDR_ON連接到VSS時,電源電壓可降至1.7V。具有一套全面的省電模式,允許低功耗應用設計。STM32F405Xx和STM32F407xx系列設備提供的封裝,范圍為64~176引腳。STM32FE405x和STM32F407x微控制器系列上述特點,使得應用范圍廣。如馬達驅動和應用控制、醫(yī)療設備、變頻器、斷路器、打印機和掃描儀、報警系統(tǒng)、可視對講、空調、家用音響設備等。(2)STM32F415和STM32F417STM32F415和STM32F417在STM32F405和STM32F407基礎增加一個硬件加密/哈希處理器。此處理器包含AES128,192,256,TripleDES、HASH(MD5,SHA-1)算法硬件加速器,處理性能十分出色,例如,AES-256加密速度最高達到149.33MB/s。CAN通信轉換器微控制器主電路的設計如圖2-46所示。主電路采用ST公司的STM32F407嵌入式微控制器,利用其內嵌的UART串口和CAN控制器設計轉換器,體積小、可靠性高,實現了低成本設計。LED1為通信狀態(tài)指示燈,JP1和JP2設定CAN節(jié)點地址和通信波特率。STM32F4嵌入式微控制器內嵌的CAN控制器特點如下:STM32F4中有bxCAN(BasicExtendedCAN)控制器,支持CAN協(xié)議2.0A和2.0B標準;支持最高的通信速率為1Mbit/s;可以自動接收和發(fā)送CAN報文,支持使用標準D和擴展ID的報文;2.8.3CAN通信轉換器微控制器主電路的設計外設中具有3個發(fā)送郵箱,發(fā)送報文的優(yōu)先級可以使用軟件控制,還可以記錄發(fā)送的時間;具有兩個3級深度的接收FIFO,可使用過濾功能只接收或不接收某些ID號的報文;可配置成自動重發(fā);不支持使用DMA進行數據收發(fā)。圖2-46CAN通信轉換器微控制器主電路的設計CAN通信轉換器UA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論