掃描二維碼
隨時(shí)隨地手機(jī)看文章
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)的主要任務(wù)是實(shí)現(xiàn)數(shù)據(jù)和控制命令在CAN總線(xiàn)網(wǎng)絡(luò)和RS-485總線(xiàn)之間的傳輸。它主要包括RS-485和CAN接口的初始化程序、報(bào)文發(fā)送和接收程序、中斷服務(wù)程序和錯(cuò)誤處理程序等。其中,SJA1000的初始化程序是軟件設(shè)計(jì)中的難點(diǎn),需要完成各種工作參數(shù)的設(shè)置。其中,控制寄存器用來(lái)改變CAN控制器的行為,包括進(jìn)入復(fù)位狀態(tài),激活不同類(lèi)型的中斷源,如接收中斷、發(fā)送中斷和數(shù)據(jù)溢出中斷等。驗(yàn)收代碼寄存器和驗(yàn)收屏蔽寄存器共同作用定義了能被節(jié)點(diǎn)所接收?qǐng)?bào)文的條件:所收信息的標(biāo)識(shí)符的相應(yīng)位與驗(yàn)收代碼寄存器驗(yàn)收碼的相應(yīng)位相等。 驗(yàn)收屏蔽寄存器的作用是確定驗(yàn)收碼的哪些位對(duì)于驗(yàn)收濾波是相關(guān)的或不相關(guān)的??偩€(xiàn)時(shí)序寄存器0定義了波特率的預(yù)設(shè)值及同步跳轉(zhuǎn)寬度;總線(xiàn)時(shí)序寄存器1則定義了位周期的長(zhǎng)度、采樣點(diǎn)的位置和采樣數(shù)目。輸出控制寄存器可以設(shè)置不同的輸出模式(如正常輸出模式、雙相輸出模式和時(shí)鐘輸出模式等)。時(shí)鐘分頻寄存器不僅可以控制SJA1000的輸出頻率及屏蔽CLKOUT引腳,而且還能夠?qū)asic CAN和Peli CAN模式進(jìn)行選擇。具體的SJA1000初始化程序流程如圖2所示。
CAN總線(xiàn)轉(zhuǎn)換到RS-485總線(xiàn)的程序如下:
CAN-RS485_TR
ANSITION:
MOV DPTR, #SR; 狀態(tài)寄存器
MOVX A, @DPTR;
JNB ACC.0, CAN_QUIT;
是否接收到信息,無(wú)數(shù)據(jù)則退出轉(zhuǎn)換程序
CAN-RS485_HANDLE:
MOV DPTR, #CANR ;接收緩沖區(qū)首地址
MOVX A , @DPTR ;接收幀的格式
JNB ACC.6 , RECEIVE _ FRAME
;RTR=1則報(bào)文是遠(yuǎn)程請(qǐng)求幀
LCALL TRANSMIT_ DATA
;發(fā)送對(duì)方請(qǐng)求的數(shù)據(jù)
LJMP CAN_QUIT ;退出轉(zhuǎn)換程序
RECEIVE_ FRAME: MOVX A, @DPTR;
ANL A, #0FH;
ADD A, #05H
;獲得接收數(shù)據(jù)的長(zhǎng)度
MOV R7, A
MOV R0,#43H
;設(shè)定MCU接收數(shù)據(jù)緩沖區(qū)
DATAFRAME: MOVX A, @DPTR
;接收數(shù)據(jù)
MOV @R0, A
LCALL RS485_SEND ;將有效信息通過(guò)MAX485轉(zhuǎn)發(fā)到RS-485總線(xiàn)
INC DPTR
INC R0
DJNZ R7, DATAFRAME ;判斷接收是否結(jié)束
RECOUT: MOV DPTR, #CMR
MOV A, #04H
;釋放接收緩沖區(qū)
MOVX @DPTR, A
CAN_QUIT: RET ;退出轉(zhuǎn)換程序
4 結(jié)束語(yǔ)
CAN總線(xiàn)是當(dāng)前應(yīng)用最為廣泛的現(xiàn)場(chǎng)總線(xiàn)之一,而RS-485總線(xiàn)則是常用的串行總線(xiàn),兩者之間的相互轉(zhuǎn)換具有很高的實(shí)用價(jià)值。本文設(shè)計(jì)的CAN-RS485通信接口電路能夠很好地解決這兩種串行數(shù)據(jù)總線(xiàn)之間的相互轉(zhuǎn)換問(wèn)題,并已成功應(yīng)用于某地區(qū)的智能交通控制系統(tǒng)。
汽車(chē)電子系統(tǒng)架構(gòu)發(fā)生了顛覆性變化。它已經(jīng)持續(xù)了近十年,現(xiàn)在正在加快速度。這主要發(fā)生在 BEV 初創(chuàng)公司中,因?yàn)樗鼈儧](méi)有歷史限制或根深蒂固的喜愛(ài)設(shè)計(jì),并且可以從電子架構(gòu)的零基礎(chǔ)開(kāi)始。
關(guān)鍵字: CAN總線(xiàn) 電動(dòng)汽車(chē)在電子產(chǎn)品的設(shè)計(jì)中,電磁兼容EMC性能對(duì)系統(tǒng)的影響非常大,關(guān)系到其能正常穩(wěn)定運(yùn)轉(zhuǎn)。世界上已經(jīng)開(kāi)始對(duì)電子產(chǎn)品的電磁兼容性做強(qiáng)制性限制,電磁兼容性能已經(jīng)成為產(chǎn)品性能的一個(gè)重要指標(biāo)。 電磁兼容主要有兩方面的內(nèi)容,一個(gè)是產(chǎn)...
關(guān)鍵字: CAN總線(xiàn) 電磁兼容EMCCAN 是Controller Area Network 的縮寫(xiě)(以下稱(chēng)為CAN),是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議。在汽車(chē)產(chǎn)業(yè)中,出于對(duì)安全性、舒適性、方便性、低功耗、低成本的要求,各種各樣的電子控制系統(tǒng)被開(kāi)發(fā)了出來(lái)。...
關(guān)鍵字: CAN總線(xiàn) CAN 抗噪CAN總線(xiàn)首先在汽車(chē)上得到了廣泛應(yīng)用,之后又在工業(yè)生產(chǎn)領(lǐng)域有了很大發(fā)展,那么面對(duì)不同的應(yīng)用場(chǎng)景和工況,如何選擇合適的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)慢慢成為一個(gè)讓人頭疼的問(wèn)題。在這篇文章中,我將重點(diǎn)介紹用于驅(qū)動(dòng)這些總線(xiàn)電壓的 CAN 驅(qū)動(dòng)器...
關(guān)鍵字: CAN總線(xiàn) CAN總線(xiàn)拓?fù)?/a>今天,小編將在這篇文章中為大家?guī)?lái)智能傳感器的有關(guān)報(bào)道,通過(guò)閱讀這篇文章,大家可以對(duì)智能傳感器具備清晰的認(rèn)識(shí),主要內(nèi)容如下。
關(guān)鍵字: 智能傳感器 物聯(lián)網(wǎng) 通信接口在進(jìn)行CAN總線(xiàn)通信前,應(yīng)保證正確的總線(xiàn)配置,比如終端電阻。它是影響總線(xiàn)通信的重要組件,下面我們不考慮信號(hào)的完整性,只從信號(hào)幅度和時(shí)間常數(shù)方面分析不加終端電阻時(shí)的影響。??終端電阻添加要求根據(jù)ISO11898-2對(duì)終端電...
關(guān)鍵字: 電阻 終端 CAN總線(xiàn) 電平大家好,我是小麥。最近在調(diào)試一個(gè)CAN總線(xiàn)的設(shè)備遇到一些問(wèn)題,簡(jiǎn)單總結(jié)一下。本文會(huì)對(duì)CAN總線(xiàn)進(jìn)行簡(jiǎn)單介紹,CAN的硬件鏈路層,協(xié)議層,以及調(diào)試的一些心得。目錄什么是CAN總線(xiàn)?物理層差分信號(hào)連接方式CAN節(jié)點(diǎn)CAN協(xié)議...
關(guān)鍵字: CAN總線(xiàn)大家好,我是小麥。最近在調(diào)試一個(gè)CAN總線(xiàn)的設(shè)備時(shí)遇到了一些問(wèn)題,在此簡(jiǎn)單總結(jié)一下。本文將對(duì)CAN總線(xiàn)進(jìn)行簡(jiǎn)單介紹,包括CAN的硬件鏈路層、協(xié)議層,以及調(diào)試的一些心得。目錄什么是CAN總線(xiàn)?物理層差分信號(hào)連接方式CAN節(jié)...
關(guān)鍵字: CAN總線(xiàn)摘 要 :視頻監(jiān)控系統(tǒng)是計(jì)算機(jī)應(yīng)用中的重要領(lǐng)域之一。數(shù)字化攝像頭網(wǎng)絡(luò)化之后,監(jiān)控系統(tǒng)正在不斷引入新的功能,為使現(xiàn)有監(jiān)控系統(tǒng)能更好地應(yīng)對(duì)復(fù)雜環(huán)境,滿(mǎn)足不同監(jiān)控要求,就需要追加新功能,在系統(tǒng)架構(gòu)與設(shè)計(jì)上進(jìn)行調(diào)整。因此,如何將...
關(guān)鍵字: 智能監(jiān)控 系統(tǒng)架構(gòu) 模塊化設(shè)計(jì) 接口設(shè)計(jì) 數(shù)據(jù)傳輸 深度相機(jī)