can總線控制器sza1000在sc65調制機器中的時序匹配問題_第1頁
can總線控制器sza1000在sc65調制機器中的時序匹配問題_第2頁
can總線控制器sza1000在sc65調制機器中的時序匹配問題_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

can總線控制器sza1000在sc65調制機器中的時序匹配問題

1can總線技術co(coor)總線是一個有效的分布式分發(fā)通信網絡,用于高效支持分布式數據的控制和當前控制。由于CAN總線自身的優(yōu)點,較強的糾錯能力、差分收發(fā)、長距離傳輸,以及眾多半導體廠商如Philips和Intel等支持,因此CAN總線在近年來使用非常廣泛,其中,Philips公司的CAN總線控制器SJA1000是使用率最高的芯片。TSC695F是ATMEL公司研制的針對空間應用的32位高性能處理器。該芯片為SPARC構架,V7精簡指令集,支持4級流水線操作。GAL是小規(guī)模的可編程邏輯器件,這里以LATTICE公司的GAL22V10為例。GAL22VI0最多有22個輸入和10個輸出,輸出可配置成寄存器輸出和組合邏輯輸出,并可設為高電平有效或者是低電平有效。該類器件一般在嵌入式系統(tǒng)中作地址譯碼用,在本文中GAL22V10將根據CPU的I/O讀寫時序產生一些控制信號,用于控制CPU對SJA1000的讀寫,以達到時序的匹配。2tsc295f數據統(tǒng)計分析CAN總線控制器SJA1000為了兼容早期的PCA82C200芯片及針對單片機的設計,其數據總線只有8位,并且與8位地址總線是分時復用。而TSC695F是目前空間應用中最新、功能最強的32位處理器,其數據總線和地址總線各有32位。而CAN總線以其優(yōu)良的性能在空間應用廣泛,在基于TSC695F的系統(tǒng)中,要支持CAN總線通信,處理器和SJAJ000之間存在如何訪問的問題,地址線、數據線如何連接,控制線怎樣產生如何連接,這些就是本文想要解決的問題。3tsq9-1Philips公司的SJA1000芯片是適用于汽車和一般工業(yè)環(huán)境控制器局域網的高集成度獨立控制器,DIP28封裝,最高傳輸速率為1Mb/s,同時支持Intel系列和Motorola系列的CPU。若是表面貼裝器件,則型號為SJA1000T,引腳定義和SJA1000相同。這里以Intel模式使用SJA1000,見表1。SJA1000的讀時序(Intel模式)見圖1.SJA1000的寫時序(Intel模式)見圖2。讀寫時序圖中的參數為:tsu(A-AL)最小為8ns;tw(AL)最小為8ns;tllwl最小為10ns;th(AL-A)最小為2ns;tw(w)最小為20ns。ATMEL公司的TSC695F芯片是針對于空間應用設計的。具有檢錯糾錯能力,可靠性高,抗輻射能力強。該芯片不區(qū)分內存空間和I/O空間,而是統(tǒng)一地址空間,由不同的片選來區(qū)分不同的空間。對不同的空間進行了功能的劃分,因此對其訪問是有區(qū)別的,最明顯的一點是速度的快慢。其對外圍的1/O接口指定了4個地址空間,分別為IOSEL0,IOSEL1,IOSEL2和IOSEL3。SJA1000內部的寄存器一般采用內存映射法來訪問,其基本模式是32個寄存器和先進模式128寄存器,可映射在上述任一個地址空間中。讀寫時序如圖3所示。4sra0103指令的讀寫解決以上問題的一種簡單的方法是,訪問一次SJA1000內部寄存器用2條指令,訪問寄存器的地址信號和數據信號全部通過數據線專送。第1次訪問先送地址,第2次訪問再送數據內容。CPU先后產生2個獨立的片選信號:一個是地址片選信號連接到SJA1000的ALE引腳;另一個是數據片選信號連接到SJA1000的(/CS)引腳,SJA1000的8根數據地址復用線直接和CPU的數據線相連接(SJA1000的AD7~0輸入有寄存器,若無片選信號,其引腳為三態(tài)隔離)。該方法的優(yōu)點是硬件連線簡單、邏輯清晰。缺點是訪問速度慢了一半,軟件編寫相對復雜,對該器件的正確使用由軟件人員來保證。另外,在一些實時性較強的系統(tǒng)應用中,中斷程序內執(zhí)行時間很緊張,這是不能接受或者說不能滿足要求的。而且在2條指令訪問寄存器時,因為后一條指令總是依賴前一條指令(數據依賴地址),最好是2條指令之間沒有其他指令打擾,以保證訪問的絕對正確。圖4為邏輯框圖。該方式可以訪問SJA1000,現已通過調試。方法二的目的就是用一條指令完成對SJA1000的讀或寫功能??傮w思路是用2片54LS245(也可用其他245)來進行地址線和數據線的分離,用GAL產生控制信號來控制任一個245的開關,使地址和數據信號分時進入SJA1000,確保數據能寫入/讀出無差錯。問題的難點在于695F沒有AEN(地址允許)信號(80C86,386EX都有該信號,DSP,ARM等都沒有該信號),無法精確地知道CPU在何時開始總線周期,無法精確地掌握CPU運行的節(jié)拍。經過分析和試驗,用時鐘信號和片選信號進行同步,在總線周期的一開始3個周期產生地址鎖存信號讓SJA1000把地址鎖入,然后再進行數據的傳送。TSC695F的內部時鐘頻率為外接頻率的1/2,這里CPU外接32MHz晶振,內部工作頻率為16MHz,總線周期為62.5ns。CPU訪問該器件一般插入8個等待周期。邏輯框圖見圖5。困5一條指令讀寫的邏輯框圖首先在GAL1中編寫一個3位格雷碼狀態(tài)機,分t0~t7共8個狀態(tài),t0為初始狀態(tài)。格雷碼編碼見表2。狀態(tài)機狀態(tài)轉換圖見圖6。在GAL1中產生2個信號:ALE(高電平有效,用來讓SJA1000鎖住CPU給出的地址)和temp信號(高電平有效,用來當作245B的選通信號和SJA1000片選信號)。在CLK2的上升沿時采樣片選IOSEL信號(低有效),若IOSEL為高電平,則狀態(tài)機停留在t0狀態(tài)(ALE為低電平,temp為低電平),一旦采樣到IOSEL為低電平,表示一個CPU外部總線周期已經開始,狀態(tài)機進入tl狀態(tài),同時ALE信號由低電平變?yōu)楦唠娖?在CLK2的下一個上升沿,狀態(tài)機進入t2狀態(tài),ALE信號由高電平轉為低電平,也就是ALE高電平持續(xù)一個周期寬度(62.5ns);在CLK2的作用下,狀態(tài)機進入t3狀態(tài),這時temp信號由低電平轉為高電平;接著狀態(tài)機進入t4狀態(tài),并判斷IOSEL是否為高,若為高電平,則狀態(tài)機進入t0狀態(tài),temp信號由高電平變?yōu)榈碗娖?一個總線周期訪問結束,反之IOSEL為低電平,則狀態(tài)機一直停留在t4狀態(tài);其余的狀態(tài)下,在CLK2的作用下,狀態(tài)機會自動回到t0狀態(tài)。GAL2器件根據GAL1器件產生的ALE和temp信號,再加入地址信號產生CS信號、CS1和CS2信號,CS1信號用作245A的選通信號,CS2用作245B的選通信號,CS1信號用作SJA1000的片選。各個信號的波形如圖7。以上的設計在實際工程中已經調試成功,并且非常穩(wěn)定。因為SJA1000相對于CPU來說還是慢速器件,μs級存儲,對它訪問時將會插入若干個等待周期,所以這樣設計多插入3個時鐘周期是不會有很大影響的,若插入的等待周期大于4個,就沒有影響了。在實際使用時,一般總要插入8個周期,因此,對速度不會有影響。這樣設計的最大好處是對軟件人員是透明的,編寫程序比較簡單,也不會出現因中斷嵌套而帶來的不確定因素。當然需增加一些硬件資源,如541s245和GAL等器件。但由于CPLD和FPGA的快速發(fā)展,若板上有CPLD或FPGA,則可以把上述功能放在FPAG或CPLD中實現。若把CPU從TSC695F變換成Intel的386EX也可以實現以上設計,并且已經通過了試驗。5在財務交叉的情況下,注意路要和居民的讀取時序匹配在實際工程中遇到的上述問題經過仔細分析和不斷試驗,最終得到了解決。在嵌入式系統(tǒng)的外圍接口電路設計中,經常碰到類似的外圍電路要和CPU的讀寫時序進行匹配。需要

溫馨提示

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

評論

0/150

提交評論