




已閱讀5頁,還剩10頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于CAN總線的伺服電機通信控制基于CAN總線的伺服電機通信控制摘 要:介紹了CAN總線與伺服電機的特點,并討論了伺服電機基于CAN總線的通信控制特性。 關鍵詞:伺服電機;伺服控制器;CAN總線 1 引言 CAN(Controller Area Network)總線是一種有效支持分布式控制或實時控制的串行通信局域網絡,由于其高性能、高可靠性、實時性好及其獨特的設計,已廣泛應用于控制系統中的各檢測和執行機構之間的數據通信,在工控領域興起應用熱潮。 而伺服電機具有結構緊湊、控制容易、運行穩定、響應快等優異特性,已越來越成為現代工業自動化系統中的一個重要執行元件。在自動化程度高、需精確控制速度、位置、力矩等的場合,如印刷機械、造紙機械、紡織機械、工業機器人、高速電梯、數控機床等重要行業中,得到了普遍的應用。 德國倫茨公司生產的伺服電機由于提供了CAN總線接口,使其很容易掛接到CAN總線上,通過CAN總線進行數據傳輸與控制,拓展了伺服電機的功能與應用范圍,使伺服電機能更好更靈活地應用于現代工業控制系統中。 2 CAN總線的特性 作為專門應用于工業自動化領域的網絡,CAN總線具有以下優點: (1)使用簡單方便。許多CAN控制器芯片如SJA1000T、Philips 82C250等實現了CAN物理層及數據鏈路層的大部分,在使用時用戶需要做的只是兩件事:對CAN控制器進行初始化,對CAN總線上的數據進行收發操作。 (2)高效可靠。CAN采用短幀結構,數據幀中的數據字段長度最多為8B,所以傳輸的速度快(最大通信速率可達1Mbps),受干擾的概率低。同時,CAN總線作為多主節點,各節點通過總線仲裁獲得總線控制權,并擁有完善的錯誤處理機制,保證了各種干擾環境下數據傳輸的安全可靠。 (3)系統可擴充性好。CAN總線是面向消息的編碼,而不是面向設備的編碼,故增添或刪減CAN上的節點非常方便和靈活,易于系統的擴充。 3 伺服電機接入CAN網 倫茨伺服電機的伺服控制器由于提供了專門的CAN總線接口X4,可以象其他的CAN節點一樣,用普通雙絞線作為通信介質,很方便地連接到基于CAN總線的工業控制系統上,如圖1所示。 倫茨的伺服控制器與伺服電機之間采用旋轉變壓器或光電編碼器建立反饋,形成高精度的伺服控制系統,伺服電機實時地將其運行狀態與運行信息上傳給伺服控制器。作為CAN總線上的節點,伺服控制器不僅可以與上位主機進行通信,通過CAN總線接收上位機的各種操作、控制和參數設定命令;同時伺服控制器之間亦可以進行快速的數據交換,相互間建立一定的協調或控制關系。 上位主機通過接插支持CAN的通訊適配卡獲得對CAN總線的支持,負責對整個系統的運行和工作狀態進行監視管理。由于CAN總線在工業控制上的應用越來越廣泛,很多公司都推出了支持CAN總線的接口適配卡,如研華的PCL-841通信卡、北京華控的HK-CAN20通信卡、北京三興達公司的智能CAN-PC總線適配卡PCCAN等等,用戶可以通過這些接口適配卡,來運行復雜的通信任務,進行各CAN節點與上位主機之間的數字通信和協調管理。 4伺服控制器的功能模塊與基于CAN總線的數據通道 倫茨伺服電機的伺服控制器,具有豐富的內部功能模塊庫,如常見的邏輯功能模塊、算術功能模塊、信號類型轉換模塊、斜坡函數發生模塊、相位積分模塊以及較特殊的數頻輸入輸出模塊、數頻處理模塊、伺服控制處理模塊、速度設定處理模塊等等。用戶利用這些功能塊,可以自由配置控制器的信號流程,使控制器能很容易地適應不同的實際應用。 為了實現基于CAN總線的應用,伺服控制器提供了專門的CAN總線功能模塊組CAN-IN與CAN-OUT,作為過程數據通道,進行過程數據的傳輸。其中,功能塊CAN-IN1與CAN-OUT1只用于伺服控制器與上位主機之間進行通信與數據傳輸。輸入功能塊CAN-IN1用于接收上位主機的數據信息,CAN-IN1有8B的數據空間可供用戶使用配置,可以向其他內部功能模塊提供二進制信號、16位的模擬信號、16位的速度信號以及32位的相位信號等多種控制信號。上位主機通過向根據實際應用配置的CAN-IN1模塊發送命令信息,能實現伺服電機的速度給定、電機快停、電機的正反轉切換、電機正常模式轉速與恒定低速的切換、電機使能、電機禁止等各種功能。同樣,CAN-OUT1功能模塊亦有8B的數據空間可供用戶使用,可以通過配置向上位主機實時地提供電機的各種狀態信息、電機的實際速度、電機的實際相位等信息。 功能塊CAN-IN2、CAN-IN3與CAN-OUT2、CAN-OUT3用于伺服控制器之間進行快速數據交換。只要配置了某一伺服控制器的CAN-OUT2或CAN-OUT3與另一伺服控制器的CAN-IN2或CANIN3的對應關系,即可建立起伺服控制器間的數據傳輸通道,在電機運行過程中將1臺伺服控制器的各種數據信息傳給另1臺伺服控制器,常見的如:將1臺伺服控制器的速度給定經一定運算處理后作為另1臺伺服控制器的速度給定信號,使2臺伺服電機速度比例運行。該特性對于多臺伺服電機之間的協調控制具有重要意義。上位主機亦可以監測到在CAN總線上傳輸的該類數據信息。 同時,伺服控制器還提供2路參數輸入通道和2路參數輸出通道。在CAN總線上,上位主機可通過2路參數輸入通道,對伺服控制器內的各種參數進行設置修改,如伺服電機的加減速時間、齒輪箱變速比、級聯系數等等;通過2路參數輸出通道讀取伺服控制器的各種參數,如伺服電機的當前溫度、當前配置的加減速時間以及電機的實際電壓電流等等,故只要是能在伺服控制器的參數代碼表中找得到的參數,基本上都能夠讀取。 通過CAN總線接口與各個數據通道,伺服電機可將自己的相關數據信息發送到CAN總線上;同時亦可以接收來自總線的伺服電機所需的各種數據信息與控制命令。 5 CAN的通信協議 作為實時性要求比較高的工業控制底層網絡,CAN協議只分為3層:物理層、數據鏈入層和應用層。CAN通信協議有4種不同的幀格式:數據幀、遠程幀、錯誤幀和超載幀。 由于CAN通信協議給出的只是共性要求,在實際應用中需要將協議具體化,建立適用的協議規則。根據伺服電機伺服控制器的特點,并遵循CAN通信協議標準,制定了伺服控制器的通信協議規則。伺服控制器的每個信息幀分為2部分:幀頭和數據域。幀頭占2B,其前11位為標識符,然后是一位RTR位,最后是4位的數據長度位DLC(即所發數據的實際長度,以字節為單位)。數據域占用8B。11位的信息標識符反應了節點的優先級別,總線仲裁就是通過它來實現的,信息幀的標識符越小,信息幀就具有越高的優先權。除總線狀態等特殊信息外,伺服控制器對所傳輸信息的標識符有一定的計算公式: 信息標識符基準標識符設定的控制器的節點地址 伺服控制器的節點地址可以在參數代碼表中設定。而對信息的基準標識符,伺服控制器有統一的規定,如:同步觸發信號的基準標識符為128,來自控制器CAN-OUT1通道的信息的基準標識符為384,而發送到控制器CAN-IN1通道的信息的基準標識符為512,通過參數通道1發送到控制器的信息基準標識符為1536,通過參數通道1接收的信息基準標識符則為1408。 對于8B的數據域,用戶需要按照所要發送的具體信息來確定應遵循的使用原則。比如,要通過參數通道進行參數設定,第1個字節為命令碼,第2、3字節為參數對應的索引號,第4個字節為參數對應的次索引,后4個字節是要設定的參數數據大小;而要發送信息到某伺服控制器的過程數據通道CAN-IN1,則直接是數據信息的發送,沒有命令碼,也沒有索引號。 6 上位主機的軟件設計 通過CAN總線進行通信與控制的伺服電機,在針對實際的應用要求配置好伺服控制器的內部控制信號流,以及基于CAN的接口功能模塊和數據通道后,剩下需要解決的是上位主機的軟件設計問題。 由于上位主機所接插的CAN通訊適配卡一般都提供CAN的驅動函數,所以在上位機軟件的編制過程中,實現與CAN總線的通信部分可以直接調用相應的函數,如上位主機與CAN通信的主要任務:對CAN適配卡的初始化、CAN信息包的發送、CAN信息包的接收等,都有現成的函數可以使用,為用戶使用CAN進行通信提供了方便。對CAN通訊適配卡的初始化主要是初始化適配卡的各個寄存器,設置中斷向量、通信卡的波特率以及中斷屏蔽字等必要的參數,為正常通信作準備。實現CAN信息包的發送,首先要確定信息包的11位信息標識符,填入幀頭,并在數據域中填入需要發送的數據信息,通過發送函數發送給所有CAN節點或特定的CAN節點上。而對于使用接收函數所接收的CAN信息包,亦通過其11位信息標識符,判斷其來源,對數據域的數據進行處理,取得有效的信息,進行顯示或存儲,并按照控制需要發送控制指令。其軟件控制流程圖,如圖2所示。 上位主機正是通過對CAN驅動函數的不斷調用,發送控制命令或參數設定命令給各伺服電機的伺服控制器,驅動伺服電機的啟停運轉;同時接收來自伺服控制器的伺服電機的速度、相位、轉動方向、轉矩等各種數據信息及狀態信息,并進行分析處理,然后按照系統的實際控制需要再給伺服控制器發送相應的命令,去驅動電機,使伺服電機的運行始終按用戶的要求進行變化,從而實現對伺服電機的管理與控制。 7 結束語 倫茨伺服電機CAN接口的引入,提高了伺服電機的自動化水平,使伺服電機在工業控制網絡中的通信與控制更為方便、靈活和可靠。 CAN總線在現代工業控制系統中越來越廣泛的應用,為帶CAN接口的伺服電機提供了廣闊的應用前景。 參考文獻 1鄔寬明.CAN總線原理和應用系統設計M.北京:北京航空航天大學出版社,1996. 智能儀表的CAN接口設計王文華 (遼寧機電職業技術學院 機械系,遼寧 丹東 118002) 1 前沿 在計算機數據傳輸領域內,長期以來使用RS232通信標準,盡管被廣泛的使用,但卻是一種低數據率和點對點的數據傳輸標準,無能力支持更高層次的計算機之間的功能操作。同時,在復雜或大規模應用中(如工業現場控制或生產自動化領域),需要使用大量的傳感器、執行器和控制器等,它們通常分布在非常廣的范圍內,所以,在最底層的確需要一種造價低廉而又能適應工業現場環境的通信系統,現場總線(Field Bus)就是在這種背景下應運而生的。 現場總線是連接智能現場設備和自動化系統的數字式、雙向傳輸、多分支結構的通信網絡,現場總線技術自上世紀70年代誕生至今,由于它在減少系統線纜,簡化系統安裝、維護和管理,降低系統的投資和運行成本,增強系統性能等方面的優越性,引起人們的廣泛注意,得到大范圍的推廣。 CAN是一種有效支持分布式控制或實時控制的串行通信網絡,最初是由德國BOSCH公司為汽車監控、控制系統設計的。由于CAN總線本身的特點,其應用范圍目前已不再局限于汽車行業,而向過程工業、機械工業、紡織機械、農用機械、機器人、數控機床、醫療器械、傳感器及智能儀表等領域發展。 智能儀表是自動化學科的重要組成部分。隨著科學技術的迅速發展,尤其是微電子、計算機和通信技術日新月異的變化,智能儀表逐漸向數字化、網絡化和智能化方向發展。智能儀表一方面可以進行人機對話及與外部儀器設備對話,通過現場總線接入自動測試系統;另一方面,使用者借助面板上的鍵盤和顯示屏,可用對話方式選擇測量功能,設置參數。當然,通過總線中的工業計算機也可獲得測量節點的數據。 2 CAN的接口設計 CAN總線是一種串行數據通信協議,在CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可以完成對通信數據的成幀處理。CAN總線接口的具體電路如圖1所示。 筆者用SJA1000作為流量計的CAN控制器,與CPU(單片機)的I/O口直接相連,再通過PCA82C250組成CAN總線。這種結構很容易實現CAN網絡節點中的信息收發,從而實現對現場的控制。 SJA1000的AD0AD7連接到MSP420F149的P0口,INT接到P1.0,CS接到P1.1,RD連接到P1.2,WR連到P1.3,ALE連到P1.4,SJA1000的RX0與TX0分別通過2個CNW137型高速光耦與PCA82C250相連后,再連到CAN總線上。 PCA82C250為CAN總線收發器,是CAN控制器與CAN總線的接口器件,對CAN總線以差分方式發送,其RS引腳用于選擇PCA82C250的工作方式:高速方式和斜率方式。RS接地為高速,RS引腳串接1只電阻器后再接地,用于控制上升和下降斜率,從而減小射頻干擾。RS引腳接高電平,PCA82C250處于等待狀態。此時發送器關閉,接收器處于低電流工作,可以對CAN總線上的顯性位做出反應來通知CPU。實驗數據表明15k200k為串聯電阻器較理想的取值范圍,在這種情況下,可以用平行線或雙絞線作為總線,本設計中PCA82C250的斜率電阻為30k。 CNW137為高速光耦,最高速度為10Mb/s,用于保護SJA1000型CAN總線控制器。CAN總線的終端匹配電阻器起相當重要的作用,不合適的電阻器會使數據通信的抗干擾性及可靠性大大降低甚至無法通信,理想的阻值范圍為108132,該設計使用的阻值為124。 2.1 SJA1000的功能 CAN通信協議主要由CAN控制器完成。SJA1000是適用于汽車和一般工業環境控制器局域網(CAN)的高集成度控制器,具有完成高性能通信協議所要求的全部特性,具有簡單總線連接的SJA1000可完成物理層和數據鏈路層的所有功能,應用層功能可由微控制器完成,SJA1000為其提供了多用途的接口。 SJA1000是Philips公司PCA82C200型CAN控制器的后續產品,在軟件和引腳上均與PCA82C200兼容,并增加了許多新的功能,性能更佳。尤其適用于對系統優化、診斷和維護要求比較高的場合。 SJA1000的功能框圖如圖2所示,由以下幾部分構成:接口管理邏輯;發送緩沖器,能夠存儲1個完整的報文(擴展的或標準的);驗收濾波器;接收FIFO;CAN核心模塊。2.2 82C250 SJA1000的一端與單片機相連,另一端與CAN總線相連。但是,為了提高單片機對CAN總線的驅動能力,可以把82C250作為CAN控制器和物理總線間的接口,以提供對總線的差動發送能力和對CAN控制器的差動接收能力。82C250的主要特性如下:與ISO/DIS11898標準兼容; 高速(最高可達1Mb/s); 具有抗汽車環境下的瞬間干擾和保護總線的能力; 降低射頻干擾的斜率控制;熱保護功能;防止電池與地之間發生短路;低電流待機方式; 某個節點掉電不會影響總線; 可有110個節點相連接。 3 CAN通信程序 SJA1000操作期間,在上電之前必須配置控制線路(中斷、復位、片選等)建立與CAN控制器之間通信的硬件連接。初始化、CAN通信采用中斷方式數據發送和接收子程序,其流程如圖3、圖4和圖5所示。 如果在上電后獨立CAN控制器在引腳17得到1個復位脈沖(低電平),它就能夠進入復位模式。在對SJA1000寄存器設計前,CAN控制器通過讀復位模式/請求標志來檢查是否已進入復位模式,因為要配置信息的寄存器只有在復位模式才能寫入,并涉及到對控制寄存器(CR)、驗收碼寄存器(ACR)、驗收屏蔽寄存器(AMR)、總線定時寄存器(BTRO和BTR1)和輸出控制寄存器(OCR)的初始化編程。 時鐘分頻寄存器可以選擇BasicCAN或PeliCAN工作模式,設置CLKOUT因該使能用來選擇頻率,設置是否使用旁路CAN輸入比較器和是否使用TX1輸出用為專門的接收中斷輸出。驗收代碼和驗收屏蔽寄存器的設置可以過濾信息,為收到的信息定義驗收代碼;為與驗收代碼相關位比較定義驗收屏蔽代碼。 總線定時寄存器定義總線上的位速率。輸出控制寄存器定義CAN總線輸出引腳TX0和TX1的輸出模式,定義TX0和TX1輸出引腳配置是懸空、下拉、上拉或推挽以及極性。中斷寄存器設置允許識別的中斷源。 4 結束語 多個智能儀表通過CAN接口與PC連成總線網,其系統運行良好。這種基于現場總線的智能儀表系統抗干擾性強,性能可靠,無論是測量速度、精確度和自動化程序還是性價比都是傳統儀表不能比擬的,是今后儀器儀表發展的方向。CAN控制器SJA1000及其應用摘要:介紹CAN控制器SJA1000的特點、內部結構以及SJA1000的寄存器結構及地址分配;CAN協議通信格式。并以獨立CAN控制器SJA1000為例,結合CAN協議說明了一種通用型CAN總線的開發與設計。s0100關鍵詞:CAN總線SJA1000單片機1SJA1000簡介SJA1000是PHILIPS公司早期CAN控制器PCA82C200的替代品,功能更強,具有如下特點:完全兼容PCA82C200及其工作模式,即BASICCAN模式;具有擴展的接收緩沖器,64字節的FIFO結構;支持CAN2.0B;支持11位和29位識別碼;位速率可達1Mbit/s;支持peliCAN模式及其擴展功能;24MHz的時鐘頻率;支持與不同微處理器的接口;可編程的CAN輸出驅動配置;增強了溫度范圍(-40+125)。圖1SJA1000內部結構2SJA1000內部結構SJA1000的內部結構如圖1所示,主要由接口管理邏輯IML、信息緩沖器(含發送緩沖器TXB和接收緩沖器RXFIFO)、位流處理器BSP、接收過濾器ASP、位時序處理邏輯BTL、錯誤管理邏輯EML、內部振蕩器及復位電路等構成。IML接收來自CPU的命令,控制CAN寄存器的尋址并向控制提供中斷信息及狀態信息。CPU的控制經IML把要發送的數據寫入TXB,TXB中的數據由BSP處理后經BTL輸出到CANBUS。BTL始終監視CANBUS,當檢測到有效的信息頭“隱性電平-控制電平”的轉換時啟動接收過程,接收的信息首先要由位流處理器BSP處理,并由ASP過濾,只有當接收的信息的識別碼與ASP檢驗相符時,接收信息才最終被寫入RXB或RXFIFO中。RXFIFO最多可以緩存64字節的數據,該數據可被CPU讀齲EML負責傳遞層中調制器的錯誤管制,它接收BSP的出錯報告,促使BSP和IML進行錯誤統計。3SJA1000的寄存器結構及地址分配表1是工作在BASICCAN模式下的SJA1000的寄存器結構及地址分配表。CAN控制器工作模式的設定、數據的發送和接收等都是通過這些寄存器來實現的。時鐘分頻寄存器OCR用于設定SJA1000工作于BASICCAN還是PeliCAN,還用于CLKOUT引腳輸出時鐘頻率的設定,在上電初始化控制器時必須首先設定;在工作模式下,控制寄存器CR用于控制CAN控制器的行為,可讀可寫;命令寄存器CMR只讀寫;狀態寄存器SR只能讀;而IR、ACR、AMR、BTR0、BTR1、OCR在工作模式下讀寫無意義。通常,在系統初始化時,先使CR.0=1,SJA1000進入復位模式。在此模式下IR、ACR、AMR、BTR0、BTR1及OCR均可讀可寫,此時設置相應的初值。當退出復位模式時,SJA1000即按復位時設定的相應情況工作于工作模式,除非再次使芯片復位,否則上次設定的值不變。當需要發送信息時,若發送緩沖器空閑,由CPU控制信息寫入TXB,再由CMR控制發送;當接收緩沖器RXFIFO未滿且接收信息通過ASP,則接收到的信息被寫入RXFIFO。可通過兩種方法讀取接收到的信息。一種方法是,在中斷被使能的情況下,由SJA1000向CPU發中斷信號,CPU通過SR及IR可以識別該中斷,并讀取數據釋放接收緩沖器;另一種方法是直接讀取SR,查詢RXFIFO的狀態,當有信息接收時,讀取該信號自并釋放接收緩沖器。當接收緩沖器中多條信息時,當前的信息被讀取后,接收緩沖器有效信號會再次有效,通過中斷方式或查詢方式可以再次讀取信息,查到RXFIFO中的信息被全部讀出止。當RXFIFO已滿,如還有信息被接收,此接收信息不被保存,且發出相應的緩沖器溢出信號供CPU讀取處理。表1SJA1000的寄存器結構及地址分配表寄存器地址寄存器名地址寄存器名地址控制寄存器CR0測試寄存器9接收緩沖器RDID020命令寄存器CMR1發TXID010RDID121狀態寄存器SR2送TXID111RXDATA122中斷寄存器IR3緩TXDATA112接收代碼寄存器ASR4沖接收屏蔽寄存器AMR5器位定時寄存器BTR06TRXDATA929位定時寄存器BTR17XTXDATA819時鐘分頻寄存器OCR31輸出控制寄存器OCR8B4CAN協議通信格式CAN協議通信格式中有四種幀格式:數據癥遠程癥出錯幀和超載鄭其中數據幀和遠程幀的發送需要在CPU控制下進行,而出錯幀和超載幀的發送則是在錯誤發生或超載發生時自動進行的。因此人們更關心前兩個幀的結構。數據幀結構如圖2所示。一個完整的數據幀格式,除仲裁嘗控制嘗數據場外都是CAN控制器發送數據時自動加上去的,而仲裁嘗控制嘗數據場則必須由CPU控制給出。用SJA1000時,寫出發送緩沖器的TXID0、TXID1即設定了相應的仲裁場和控制常TXID0即為仲裁場的高8位,TXID1的高3位為仲裁場的低3位,仲裁場共11位。TXID1的第5位為RTR位,即遠程請求位,在數據幀中為“0”;TXID1低四位標示數據場所含字節數的多少,稱為DLC。RTR與DLC共同構成控制常發送的數據組成數據場,最多不超過8個字節。遠程幀與數據幀的形式差別在于沒有數據常除此形式上的差別外,在遠程幀中RTR位須置“1”,表示請求數據源節點向它的目的點(即發送遠程幀的節點)發送數據。源節點接收到該幀后,把要發送數據用數據幀發給目的節點,完成數據請求。CRC場與ACK場都是在低層次上為提高傳輸的可靠性而自動進行的。任何幀與幀之間是幀間空間。5設計實例5.1整體設計思路這里用SJA1000與AT89C51芯片設計一種具有通用性的工業測試控制,系統的結構圖如圖3所示。CAN總線是一種多主總線,理論上任何一個節點都可以作為主節點。在本系統中設置與上位PC機相連的節點1和節點2為上位節點,其它節點為底層節點。在任務比較簡單的系統中,也可以只設置一臺上位PC機,PC機通過串口與節點上的CPU通信,CPU再與CAN控制器SJA1000通信,實現信息在CANBUS上的發送與接收。節點1與節點2的結構相同,而底層節點根據應用的不同具有不同的功能。但它們都具有與CANBUS通信的能力,上傳數據和接收數據。5.2電路原理圖節點1與節點2的原理圖如圖4所示。AT89C51通過MAX232與PC機串行通信。設置SJA1000工作于Intel模式,由PC機發送的數據寫入SJA1000并通過CAN收發器發送。接收數據是通過中斷進行的,CANBUS的數據經CAN接口芯片82C250接收并寫入SJA1000的RXFIFO,然后通過中斷提請CPU讀齲讀取的數據由RS232口上傳送給PC機。在本系統中其它節點不與PC機通信,此時AT89C51除與SJA1000相接的口線外還剩余口線,可以做其它用途。如用于數據的采集,則與A/D轉換芯片相接即可;如與控制相關,則與控制口相接即可,這樣一來可以靈活地構成各種系統。5.3軟件設計該系統的軟件設計分為兩方面:(1)PC機軟件設計,可以用VC+、VB,也可以使用工控軟件完成。如只用于監視系統,設計的重點在于PC機與節點之間的通信。(2)節點上CPU的軟件設計。不論是節點1、2或是其它底層節點,都要用到CAN通信,因此都要設置CAN控制器。其初始化的流程圖如圖5所示。圖4節點1和節點2的電路原理圖具體的例程如下:MOVDPTR,#CR;控制寄存器CR的地址送DPTRMOVA,#01HMOVXDPTR,A;進入復位模式MOVDPTR,#CDRMOVA,#00HMOVXDPTR,A;選擇BASICCAN模式、時鐘不輸出MOVA,#NODECODEMOVXDPTR,A;節點號NODECODE寫入ACRMOVXDPTR,#AMRMOVA,#00HMOVDPTR,A;AMR置為0,當且僅當RXID0=ACR時接收數據。MOVDPTR,#BTR0;設定總線時序寄存器BTR0,系統采用12MHz晶振MOVA,#85H;分頻后總線時鐘頻率為2MHzMOVXDPTR,A;同步跳轉寬度為3tsclMOVDPTR,#BTR1;設定總線時序寄存器BTR1MOVA,#0B4H;位同步時間為1個tscl,采樣開始位置TSEG1=5tsclMOVXDPTR,A;TSEG2=4tscl,每一位時間10tscl(200kHz),每位采樣3次MOVDPTR,#OCR;設置輸出控制寄存器MOVA,#1AH;數據從TX0按正常輸出模式同極性輸出MOVDPTR,A;TX1不用MOVDPTR,#CR;初始化完成,使控制器退出復位模式,進入工作模式工作。MOVA,#06HMOVDPTR,A該初始化程序使SJA1000工作在BASICCAN模式下,CAN總線位速率為200kHz。根據總線傳輸的距離不同速度可以調整。為提高其抗干擾性能,還可以在SJA1000與CAN總線收發器之間加光隔。各節點CPU的其它軟件設計應視節點的功能而定,不再多述。該系統用于城市區域交通中心信息采集及處理,已取得很好效果。由于傳輸距離較遠,設定速率為10kHz,但可靠性較強,系統成本低廉。CAN總線以其優良的性能使其應用方興未艾,以SJA1000為控制器構成各種CAN總線系統方便、簡單、成本低廉,這也是開發與應用其它CAN總線產品的基矗ImgLoad(document.getElementById(BodyLabel); CAN控制器SJA1000及其應用摘要:介紹CAN控制器SJA1000的特點、內部結構以及SJA1000的寄存器結構及地址分配;CAN協議通信格式。并以獨立CAN控制器SJA1000為例,結合CAN協議說明了一種通用型CAN總線的開發與設計。s0100關鍵詞:CAN總線SJA1000單片機1SJA1000簡介SJA1000是PHILIPS公司早期CAN控制器PCA82C200的替代品,功能更強,具有如下特點:完全兼容PCA82C200及其工作模式,即BASICCAN模式;具有擴展的接收緩沖器,64字節的FIFO結構;支持CAN2.0B;支持11位和29位識別碼;位速率可達1Mbit/s;支持peliCAN模式及其擴展功能;24MHz的時鐘頻率;支持與不同微處理器的接口;可編程的CAN輸出驅動配置;增強了溫度范圍(-40+125)。圖1SJA1000內部結構2SJA1000內部結構SJA1000的內部結構如圖1所示,主要由接口管理邏輯IML、信息緩沖器(含發送緩沖器TXB和接收緩沖器RXFIFO)、位流處理器BSP、接收過濾器ASP、位時序處理邏輯BTL、錯誤管理邏輯EML、內部振蕩器及復位電路等構成。IML接收來自CPU的命令,控制CAN寄存器的尋址并向控制提供中斷信息及狀態信息。CPU的控制經IML把要發送的數據寫入TXB,TXB中的數據由BSP處理后經BTL輸出到CANBUS。BTL始終監視CANBUS,當檢測到有效的信息頭“隱性電平-控制電平”的轉換時啟動接收過程,接收的信息首先要由位流處理器BSP處理,并由ASP過濾,只有當接收的信息的識別碼與ASP檢驗相符時,接收信息才最終被寫入RXB或RXFIFO中。RXFIFO最多可以緩存64字節的數據,該數據可被CPU讀齲EML負責傳遞層中調制器的錯誤管制,它接收BSP的出錯報告,促使BSP和IML進行錯誤統計。3SJA1000的寄存器結構及地址分配表1是工作在BASICCAN模式下的SJA1000的寄存器結構及地址分配表。CAN控制器工作模式的設定、數據的發送和接收等都是通過這些寄存器來實現的。時鐘分頻寄存器OCR用于設定SJA1000工作于BASICCAN還是PeliCAN,還用于CLKOUT引腳輸出時鐘頻率的設定,在上電初始化控制器時必須首先設定;在工作模式下,控制寄存器CR用于控制CAN控制器的行為,可讀可寫;命令寄存器CMR只讀寫;狀態寄存器SR只能讀;而IR、ACR、AMR、BTR0、BTR1、OCR在工作模式下讀寫無意義。通常,在系統初始化時,先使CR.0=1,SJA1000進入復位模式。在此模式下IR、ACR、AMR、BTR0、BTR1及OCR均可讀可寫,此時設置相應的初值。當退出復位模式時,SJA1000即按復位時設定的相應情況工作于工作模式,除非再次使芯片復位,否則上次設定的值不變。當需要發送信息時,若發送緩沖器空閑,由CPU控制信息寫入TXB,再由CMR控制發送;當接收緩沖器RXFIFO未滿且接收信息通過ASP,則接收到的信息被寫入RXFIFO。可通過兩種方法讀取接收到的信息。一種方法是,在中斷被使能的情況下,由SJA1000向CPU發中斷信號,CPU通過SR及IR可以識別該中斷,并讀取數據釋放接收緩沖器;另一種方法是直接讀取SR,查詢RXFIFO的狀態,當有信息接收時,讀取該信號自并釋放接收緩沖器。當接收緩沖器中多條信息時,當前的信息被讀取后,接收緩沖器有效信號會再次有效,通過中斷方式或查詢方式可以再次讀取信息,查到RXFIFO中的信息被全部讀出止。當RXFIFO已滿,如還有信息被接收,此接收信息不被保存,且發出相應的緩沖器溢出信號供CPU讀取處理。表1SJA1000的寄存器結構及地址分配表寄存器地址寄存器名地址寄存器名地址控制寄存器CR0測試寄存器9接收緩沖器RDID020命令寄存器CMR1發TXID010RDID121狀態寄存器SR2送TXID111RXDATA122中斷寄存器IR3緩TXDATA112接收代碼寄存器ASR4沖接收屏蔽寄存器AMR5器位定時寄存器BTR06TRXDATA929位定時寄存器BTR17XTXDATA819時鐘分頻寄存器OCR31輸出控制寄存器OCR8B4CAN協議通信格式CAN協議通信格式中有四種幀格式:數據癥遠程癥出錯幀和超載鄭其中數據幀和遠程幀的發送需要在CPU控制下進行,而出錯幀和超載幀的發送則是在錯誤發生或超載發生時自動進行的。因此人們更關心前兩個幀的結構。數據幀結構如圖2所示。一個完整的數據幀格式,除仲裁嘗控制嘗數據場外都是CAN控制器發送數據時自動加上去的,而仲裁嘗控制嘗數據場則必須由CPU控制給出。用SJA1000時,寫出發送緩沖器的TXID0、TXID1即設定了相應的仲裁場和控制常TXID0即為仲裁場的高8位,TXID1的高3位為仲裁場的低3位,仲裁場共11位。TXID1的第5位為RTR位,即遠程請求位,在數據幀中為“0”;TXID1低四位標示數據場所含字節數的多少,稱為DLC。RTR與DLC共同構成控制常發送的數據組成數據場,最多不超過8個字節。遠程幀與數據幀的形式差別在于沒有數據常除此形式上的差別外,在遠程幀中RTR位須置“1”,表示請求數據源節點向它的目的點(即發送遠程幀的節點)發送數據。源節點接收到該幀后,把要發送數據用數據幀發給目的節點,完成數據請求。CRC場與ACK場都是在低層次上為提高傳輸的可靠性而自動進行的。任何幀與幀之間是幀間空間。5設計實例5.1整體設計思路這里用SJA1000與AT89C51芯片設計一種具有通用性的工業測試控制,系統的結構圖如圖3所示。CAN總線是一種多主總線,理論上任何一個節點都可以作為主節點。在本系統中設置與上位PC機相連的節點1和節點2為上位節點,其它節點為底層節點。在任務比較簡單的系統中,也可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備設施部強電與暖通管理方案
- 安徽省阜陽市阜南實驗中學2024-2025學年高二下學期第二次階段性檢測(期中)生物試卷(有答案)
- 打造高效運營網絡劇與微電影行業公司的策略框架
- 森林古猿生物題目及答案
- 日語授受關系題目及答案
- 2021年12月山東省普通高中學業水平合格性考試物理仿真模擬試卷A(考試版)
- 2025屆北京市西城區高三一模語文試題(解析版)
- 2024-2025學年四川省樂山市普通高中高二上學期期末質量檢測語文試題(解析版)
- 高爐爐頂裝料設備課件
- 韓國廚師簽證延期通知函
- 國家開放大學電大《機電一體化系統》機考形考任務1及2題庫答案
- 真空系統的設計計算課件
- 潘祖仁版高分子化學(第五版)課后習題答案.24401
- 搭橋手術配合改
- 《愛的教育》課外閱讀指導課課件
- 10以內序數(課堂)課件
- 2021年安徽省農業信貸融資擔保有限公司招聘筆試試題及答案解析
- 精選芭蕾舞男女演員之間的潛規則匯總
- Q∕SY 1770.6-2014 連續管常規修井作業規程 第6部分:速度管柱作業
- 大型污泥脫水離心機機組安裝及調試工法
- 國家重點保護野生植物(Ⅱ級)采集申請表
評論
0/150
提交評論