『壹』 51單片機與51單片機如何用CAN匯流排連接通訊急啊!!
CAN_H跟CAN_H接唄,CAN_L對CAN_L,地可接可不接。但是要保證兩邊都接了120歐姆的終端電阻。
『貳』 51單片機 CAN匯流排
當然可腔前搏以了,單片機上面不一定所有外設都具備,因此像CAN匯流排這樣的方案就需要你加片外控制器了,不過,控制器只是實現協議,你還需要一個收發器伍祥來轉換電平,就是匹配電器特悔滑性。
『叄』 51單片機運用can匯流排的通信協議 急!!!!!!!!!!
http://www.51c51.com/
CAN全稱為Controller Area Network,即控制器區域網,由德國Bosch公司最先提出,是國際上應用最廣泛的現場匯流排之一。最初CAN 被設計作為汽車環境中的通訊,在汽車電子控制裝置之間交換信息形成汽車電子控制網路。由於其卓越的性能、極高的可靠性和低廉的價格現已廣泛應用於工業現場控制、醫療儀器等眾多領域[1][2]。
CAN協議是建立在OSI 7層開放互連參考模型基礎之上的。但CAN協議只定義了模型的最下面兩層:數據鏈路層和物理層,僅保證了節點間無差錯的數據傳輸。CAN的應用層協議必須由CAN 用戶自行定義,或採用一些國際組織制訂的標准協議。應用最為廣泛的是DeviceNet和CANopen,分別廣泛應用於過程式控制制和機電控制領域。但此類協議一般結構比較復雜,更適合復雜大型系統的應用。筆者在研製一種基於CAN匯流排的分布式高頻開關電源充電機系統的過程中設計了一種適合於小型控制系統的CAN匯流排高層通信協議。
2 CAN的特點[3]
CAN 是一種多主方式的串列通訊匯流排,基本設計規范要求有高的位速率、抗電磁干擾性,而且要能夠檢測出匯流排的任何錯誤。當信號傳輸距離達10km時,CAN仍可提供高達50kbps 的數據傳輸速率。
CAN具有十分優越的特點:
(1) 較低的成本與極高的匯流排利用率;
(2) 數據傳輸距離可長達10km,傳輸速率可高達1Mbps[7];
(3) 可靠的錯誤處理和檢錯機制,發送的信息遭到破壞後可自動重發;
(4) 節點在錯誤嚴重的情況下具有自動退出匯流排的功能;
(5) 報文不包含源地址或目標地址,僅用標志符來指示功能信息和優先順序信息。
3 CAN的技術規范
(1) 幀類型
在CAN匯流排中,有四種不同的幀類型[4][5]:
·數據幀(Data Frame) 數據幀帶有應用數據;
·遠程幀(Remote Frame) 通過發送遠程幀可以向網路請求數據,啟動其他資源節點傳送他們各自的數據,遠程幀包含6個不同的位域:幀起始、仲裁域、控制域、CRC域、應答域、幀結尾。仲裁域中的RTR位的隱極性表示為遠程幀;
·錯誤幀(Error Frame)錯誤幀能夠報告每個節點的出錯,由兩個不同的域組成,第一個域是不同站提供的錯誤標志的疊加,第二個域是錯誤界定符;
·過載幀(Overload Frame)如果節點的接收尚未准備好就會傳送過載幀,由兩個不同的域組成,第一個域是過載標志,第二個域是過載界定符。
(2) 數據幀結構
數據幀由以下7個不同的位域(Bit Field)組成:幀起始、仲裁域、控制域、數據域、CRC域、應答域、幀結尾。其標准幀結構如表1所示:
表1 數據幀的結構[4]
·幀起始:標志幀的開始,它由單個顯性位構成,在匯流排空閑時發送,在匯流排上產生同步作用。
·仲裁域:由11位標識符(ID10-ID0)和遠程發送請求位(RTR)組成,RTR位為顯性表示該幀為數據幀,隱性表示該幀為遠程幀;標識符由高至低按次序發送,且前7位 (ID10-ID4)不能全為顯性位。標識符ID用來描述數據的含義而不用於通信定址,CAN匯流排的幀是沒有定址功能的。標識符還用於決定報文的優先權,ID值越低優先權越高,在競爭匯流排時,優先權高的報文優先發送,優先權低報文退出匯流排競爭。CAN匯流排競爭的演算法效率很高,是一種非破壞性競爭。
·控制域:為數據長度碼 (DLC3-DLC0),表示數據域中數據的位元組數,不得超過8。
·數據域:由被發送數據組成,數目與控制域中設定的位元組數相等,第一個位元組的最高位首先被發送。其長度在標准幀中不超過8個位元組。
·CRC域:包括CRC(循環冗餘碼校驗)序列(15位)和CRC界定符(1個隱性位),用於幀校驗。
l應答域:由應答間隙和應答界定符組成,共兩位;發送站發送兩個隱性位,接收站在應答間隙中發送顯性位。應答界定符必須是隱性位。
·幀結束:由7位隱性位組成。
4 自訂CAN高層協議
CAN的高層協議也可理解為應用層協議,是一種在現有的底層協議(物理層和數據鏈路層)之上實現的協議。由於充電機系統的結構比較簡單,網路規模也比較小。因此我們自行制訂了一種簡單而有效的高層通信協議。
技術規范CAN2.0A規定標準的數據幀有11位標識符,用戶可以自行規定其含義,將所需要的信息包含在內。在充電機系統中,每一個節點都有一個唯一的地址,地址碼和模塊一一對應,通過撥碼開關設定,匯流排上數據的傳送也是根據地址進行的。由於本系統規模較小,節點數少於32個,因此為每個模塊分配一個5位的地址碼,同一系統中地址碼不得重復,系統初始化時由外部引腳讀入。將標識符ID9-ID5定義為源地址,ID4-ID0定義為目的地址,本協議中從模塊的目的地址全填0,表示數據是廣播數據,所有節點都可接收,主模塊中目的地址根據要進行通信目的模塊的地址確定。本通信協議的數據幀格式詳見表2。
表2 數據幀格式
理論上源地址和目的地址的范圍都是0~31,但由於CAN協議中規定標識符前7位不能全為顯性位,所以源地址不能為31,這時實際節點只有31個(0~30)。因此每個系統所含的模塊不超過31個。所以源地址和目的地址的范圍縮減到0~30。同時上位監控機也要佔用一個地址,因此系統中的電源模塊不超過30個,設計時根據節點的優先權高低從小到大分配節點地址。ID10位定義為主模塊識別碼,該位主模塊為隱性位,從模塊為顯性位,以保證主模塊通信優先。模塊的地址碼決定發送數據的優先順序。主模塊向匯流排發送的數據有兩種:一種是目的地址全部填0的廣播數據;另一種是包含特定目的地址的非廣播數據。
協議中一幀數據最多能傳送8個位元組,對於充電機控制系統來說已經足夠用了,本系統只用到其中的前5個位元組,其餘3個節字可用於以後的擴展使用,因此未定義多幀傳輸方式。
從模塊以廣播形式向匯流排發送數據,同時回收自己發送的數據,若檢測到所發送與所收到的數據不符,則立即重新發送上一幀數據。從模塊發送信息的順序由主模塊的發出的指令決定,以免在匯流排通信繁忙時優先順序較低的模塊始終得不到匯流排通信權。指令的發送順序按照各從模塊的地址順序進行,即地址較低的從模塊首先獲得指令,得以發送自己的地址碼和電流、溫度采樣值。如發生沖突,則由CAN控制器自動根據模塊的優先順序調整發送順序,在CAN的底層協議中有完善的優先順序仲裁演算法,因此應用層協議不必考慮此類問題。
對於每個模塊,上電1s後若未收到任何通信信息,則按計算延時發送自身的地址碼和溫度電流采樣值。延時時間的計算為[6]:
tdelay=T×ADD
其中:tdelay-為延時發送時間;
T-為單位延時時間常數,該值根據通信速率定義;可以取1個位周期,在波特率為100kHz時為10μs;
ADD-為模塊地址編碼。
主模塊是ID10=0的模塊,因此具有最高的優先順序。上電後主模塊首先向匯流排廣播發送自身的地址碼和溫度電流采樣值,然後即按順序向從機發送指令,等待從機的回答。主機1秒鍾後若未收到任何通信信息則認為該模塊出錯,發出報警。同樣從機1s後若未收到主機任何通信信息則認為主機出錯,按照源地址優先順序由其餘模塊中地址最低的模塊充當主模塊,並將其ID10由1改為0,以獲得最高通信優先權。
各模塊檢測到自身故障時,將切斷輸出,退出通信,並向上位機報警,同時發出聲光報警。
5 結束語
本文中所介紹的CAN高層通信協議,結構簡單、使用靈活、可靠性極高,實現也比較容易。很適合在節點數不多、通信可靠性要求高、控制結構較簡單的小型控制系統中應用,具有一定的實用價值
『肆』 單片機的三匯流排是指
單片機控制系統的三匯流排是指數據匯流排、地址匯流排、控制匯流排。
1、數據匯流排
51 單片機的數據匯流排為P0 口,CPU 從P0 口送出和讀回數據。
2、地址匯流排
51 系列單片機的地址匯流排為16 位。
高8位地址則通過P2 口送出。
3、控制匯流排
51 系列單片機的控制匯流排包括(RD)讀控制信號P3.7 和(WR)寫控制信號P3.6 等。
(4)51單片機有沒有anc匯流排擴展閱讀:
有的系統中,數據匯流排和地址匯流排是復用的,即匯流排在某些時刻出現的信號表示數據而另一些時刻表示地址。
而有的系統是分開的。51系列單片機的地址匯流排和數據匯流排是復用的,而一般PC中的匯流排則是分開的,「數據匯流排DB」用於傳送數據信息,數據匯流排是雙向三態形式的匯流排,也可以將其它部件的數據傳送到CPU。
『伍』 帶can匯流排功能的單片機有哪些
帶CAN匯流排控制器的單片機還有西門子的sab-c505c和TI的tms320lf2407;
帶can匯流排功能的單片機,就是集成CAN控制器的單片機;
比如:P87C591 是一個單片8 位高性能微控制器,具有片內CAN 控制器。它採用了強大的80C51 指令集並成功地包含了SJA1000 CAN 控制器強大的PeliCAN 功能。
『陸』 請問89cs51單片機的控制匯流排有幾根每一根控制線的作用是什麼
51單片機有 ALE、 /PSEN、 /WR、 /RD四根控制匯流排。16根地址匯流排,8根並行數據匯流排。 ALE是地址鎖存使能,/PSEN外部程序存儲器(ROM)訪問使能,/WR外部數據存儲器(RAM)「寫」使能,/RD外部數據存儲器(RAM)「讀」使能。 也有把EA也列入控制匯流排的,但由於EA是硬體接線所決定的,不是程序運行中可以改變的,所以我認為EA不是控制匯流排,RESET(復位)引腳也和EA一樣。
『柒』 51單片機的三匯流排是由哪些口線構成的
1、數據匯流排
51單片機的數據匯流排為P0口,P0口為雙向數據通道,CPU從P0口送出和讀回數據。
2、地址匯流排
51系列單片機的地址匯流排為16位。
為了節約晶元引腳,採用P0口復用方式,除了作為數據匯流排外,在ALE信號時序匹配下,通過外置的數據鎖存器,在匯流排訪問前半周期從P0口送出低8位地址,後半周期從P0口送出8位數據。
高8位地址則通過P2口送出。
3、控制匯流排
51系列單片機的控制匯流排包括讀控制信號P3.7和寫控制信號P3.6等,二者分別作為匯流排模式下數據讀和數據寫的使能信號。
(7)51單片機有沒有anc匯流排擴展閱讀
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和燃塵灶控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1)從內存中取出一條指令,並指出下一條指令在內存中的位置。
(2)對指令進行解碼和皮扮測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3)指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。