can總線控制器sza1000在sc65調(diào)制機(jī)器中的時(shí)序匹配問(wèn)題_第1頁(yè)
can總線控制器sza1000在sc65調(diào)制機(jī)器中的時(shí)序匹配問(wèn)題_第2頁(yè)
can總線控制器sza1000在sc65調(diào)制機(jī)器中的時(shí)序匹配問(wèn)題_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

can總線控制器sza1000在sc65調(diào)制機(jī)器中的時(shí)序匹配問(wèn)題

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論