導航:首頁 > 操作系統 > can單片機數據通信

can單片機數據通信

發布時間:2022-06-11 12:41:10

A. 單片機與單片機之間如何進行串列通信

找個單片機教程上面都有 兩機RXD TXD 對連,然後編寫各個的通訊程序!也有的單片機是帶CAN 的 那就按照說明連 ,編寫對應的通訊程序!

B. 單片機的通信方式有那些

單片機是一種集成在電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的計算機系統。
51 單片機內部有一個全雙工串列介面。什麼叫全雙工串口呢?一般來說,只能接受或只能發送的稱為單工串列;既可接收又可發送,但不能同時進行的稱為半雙工;能同時接收和發送的串列口稱為全雙工串列口。串列通信是指數據一位一位地按順序傳送的通信方式,其突出優點是只需一根傳輸線,可大大降低硬體成本,適合遠距離通信。其缺點是傳輸速度較低。

C. 單片機Can通訊怎麼用,

首先,CAN通信需要有介面的,在有接收的基礎上,再加一片CAN匯流排驅動晶元PCA82C250才行。
這是要看你是什麼單片機了,有的單片機帶有CAN介面的,就像帶有串口UART一樣。
帶有CAN介面的單片機,有專用的通信用寄存器來實現通信,與串口無關。
沒有CAN介面的單片機,如51系列的,就需要加一片CAN擴展接收晶元,如SJA1000,通信時,是按外部擴展介面來實現的,當然了,用SJA1000也同樣需要PCA82C250晶元的。
另外,在CAN通信時,具有很嚴格的通信協議的,必須按協議寫程序才行的。並不像串口通信那麼簡單的。

D. pic18單片機的can通信怎麼發送和接收16位元組數據怎麼分包具體代碼實現。

……之前問這個問題的也是你吧。
CAN 2.0A/B的擴展幀最多可攜帶8位元組數據。所以你應當合理設計通訊協議,在ID域中體現出包序號和拼包要求,16位元組數據拆分為兩個8位元組的塊,用兩個幀分別傳輸。接收端根據ID判定是否需要拼包、這是第幾包,在應用層或協議層自行完成拼包。

E. 怎麼使兩個單片機間進行CAN通信

如果單片機本身帶有CAN介面,那麼外部加好CAN收發器、連好線、跳好終端電阻,之後配置好相應的寄存器,就能通信了。
如果單片機自身沒有CAN介面,那麼外部還需要額外添加CAN控制器,單片機通過SPI匯流排或並行匯流排訪問CAN控制器進行配置和數據交換。

F. STM32單片機CAN通信,CAN控制器採用TJA1050,CANH與CANL輸出波形一致是怎麼回事呢

CAN匯流排通過CAN控制器介面晶元上的兩個輸出端CANH和CANL與物理匯流排相連,而CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低 電平或懸浮狀態。

CAN匯流排的介面晶元目前用的比較多的就是SJA1000,它是將數據轉換成CAN數據幀,但要與CAN匯流排連接還必須用PCA82C250,說得更准確點是:SJA1000和PCA82C250必須配對使用。

(6)can單片機數據通信擴展閱讀:

CAN匯流排通過CAN收發器介面晶元82C250的兩個輸出端CANH和CANL與物理匯流排相連,而CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低電平或懸浮狀態。

這就保證不會在出現在RS-485網路中的現象,即當系統有錯誤,出現多節點同時向匯流排發送數據時,導致匯流排呈現短路,從而損壞某些節點的現象。

而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使匯流排上其他節點的操作不受影響,從而保證不會出現像在網路中,因個別節點出現問題,使得匯流排處於「死鎖」狀態。

G. 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高層通信協議,結構簡單、使用靈活、可靠性極高,實現也比較容易。很適合在節點數不多、通信可靠性要求高、控制結構較簡單的小型控制系統中應用,具有一定的實用價值

H. 汽車單片機和CAN匯流排(汽車維修與檢測)

隨著汽車電子裝置的不斷增多,採用串列匯流排實現多路傳輸,組成汽車電子網路,是一種既可靠又經濟的做法。

在最初的傳統汽車電路中,動力總成模塊與車身模塊的連接都是點對點的連接,這樣線路會日益復雜,線路的增加,也會導致汽車故障率的增加。

後來CAN匯流排在汽車上使用越來越廣泛。所謂多路傳輸,指在計算機區域網中,將多種信息混合或交叉通過一個通信信道傳送的方式。一個具有多路傳輸功能的網路允許多個計算機同時對它進行訪問。

CAN(多路傳輸技術)應用於汽車上,可以使得布線更加簡化,成本降低,電控單元之間交流更加簡單和快捷,更少的感測器數目,實現信息資源共享。

多路傳輸通信網路應用於多模塊操作系統上。模塊由普通雙絞線相互連接,並使用數據鏈接插口作為診斷介面。信息的交換以類似於電話合用線的方式進行,模塊之間使用信息及專用的企業標准協議進行通信。信息內容涉及控制、狀態或診斷信息以及運行參數等。雙絞線具有提供冗餘備份的優點,即當一條線路中斷時,可由另一條線路保證系統運行。而且,雙絞線降低了外界對多路通信網路的電子干擾,也降低了多路通信網路自身產生的電子干擾。

我們來看下如何用示波器來測量汽車的CAN匯流排信號,首先找到汽車的OBD介面

I. can匯流排互連的時候需要接地線嗎

1.採用阻抗匹配、低衰減的RS485專用匯流排電纜(專利號:201020559128.9)更有利於保證通信。一般推薦如下:
非鎧裝雙絞屏蔽型電纜STP-120Ω(forRS485&CAN)onepair20AWG,電纜外徑7.7mm左右。適用於室內、管道及一般工業環境。使用時,屏蔽層一端接地!
非鎧裝雙絞屏蔽型電纜STP-120Ω(forRS485&CAN)onepair18AWG,電纜外徑8.2mm左右。適用於室內、管道及一般工業環境。使用時,屏蔽層一端接地!
鎧裝雙絞屏蔽型電纜ASTP-120Ω(forRS485&CAN)onepair18AWG,電纜外徑12.3mm左右。可用於干擾嚴重、鼠害頻繁以及有防雷、防爆要求的場所。使用時,建議鎧裝層兩端接地,最內層屏蔽一端接地!
CC-Link的匯流排電纜是特性阻抗為110±10Ω的3芯絞合屏蔽電纜,國產型號規格:STP-110Ω(forCANopen&CC-Link)3C×20AWG,使用時,屏蔽層應只在一端接地!
2.傳輸距離超過300米應加終端電阻(一般為120Ω)。
3.變頻器、動力電纜、變壓器、大功率電機等往往伴隨著低頻干擾,而這種干擾是用高導電率材料做屏蔽層的電纜無法解決的,包括原裝的進口電纜。只有用高導磁率材料(如鋼帶、鋼絲)做的屏蔽層才能有效抑制低頻干擾。
最常用的方法就是給電纜套上鋼管或直接採用高導磁率材料製成的鎧裝型電纜——ASTP-120Ω(forRS485&CAN)onepair18AWG.
戶外敷設電纜防雷很重要!雷電的等效干擾頻率在100k左右,也屬於低頻干擾。
《GB50057-94建築物防雷設計規范》第6.3.1條:......在需要保護的空間內,當採用屏蔽電纜時其屏蔽層應至少在兩端並宜在防雷區交界處做等電位連接,當系統要求只在一端做等電位連接時,應採用兩層屏蔽,外層屏蔽按前述要求處理。

J. 51單片機與51單片機如何用CAN匯流排連接通訊急啊!!

CAN_H跟CAN_H接唄,CAN_L對CAN_L,地可接可不接。但是要保證兩邊都接了120歐姆的終端電阻。

閱讀全文

與can單片機數據通信相關的資料

熱點內容
手機程序加密有什麼作用 瀏覽:178
求黑馬程序員python教程 瀏覽:528
androidmvvm優缺點 瀏覽:894
unix下編譯庫文件 瀏覽:633
程序員的u盤 瀏覽:237
android根據經緯度獲取城市 瀏覽:564
python使用解釋器還是編譯器 瀏覽:358
以下關於有加密演算法及密鑰描述 瀏覽:219
linuxgethostname 瀏覽:416
程序員多數有對象 瀏覽:131
單片機延時程序計算 瀏覽:444
編譯原理語法翻譯 瀏覽:504
pr編譯出錯渲染存在偏移 瀏覽:262
如何製作自家的app 瀏覽:199
推薦一個解壓軟體rar解壓幫手 瀏覽:210
wd文檔加密器 瀏覽:748
伺服器上傳壓縮包一般是什麼格式 瀏覽:333
發送加密文件密碼幾位數 瀏覽:160
樹洞app怎麼樣 瀏覽:175
vivo編譯時間可以改么 瀏覽:150