正文 第二章 64180的硬件配置(六)(1 / 3)

2.10.5ASCIwDMAC的操作

ASCI和芯片內DMAC通道0之間的操作,要求DMAC有相應的結構,以便利用ASCI標誌作為DMA請求信號。詳見《DMA操作》一節(2.9.3節)中關於“通道0的存貯器。

2.10.6ASCI和RESET

RESET時,ASCI的狀態寄存器和控製寄存器按前麵介紹的規定被初始化。

RESET時,停止接收和發送的操作。但是,RESET不改變TDR發送數據寄存器和RDR接收數據寄存器的內容。

2.10.7ASCI時鍾

在外部時鍾輸入方式中,外部時鍾是直接輸入到數據時鍾采樣比率(+16或+64)處。

2.11同步串行I/O口(CSI/O)

64180芯片內有一個簡單的高速同步串行I/O口CSI/O(Cl0ckedSerial1/OP0rt)。CSI/O包括:發送/接收(半雙工),發送和接收是固定的8位數據,可以選擇外部或內部數據時鍾,以及可以進行高逢傳送(當fc==4MHz時,波特率高達200k位/秒)。為了實現64180和HMCS400係列(4位)之間,或64180和HD6301係列(8位)之間多處理器的通訊,使用CSI/O是很理想的。HD6301係列也是一種附加64180CPU功能的單片控製器。支援芯片可用於係統部分典型的I/O設備中。比如,鍵盤掃描/譯碼、液晶顯示(LCD)接口等電路中。

2.11.1CSI/O框圖

CSI/O的框圖。CSI/O由兩個寄存器組成一發送/接收數據寄存器(TRDR)和控製寄存器(CNTR)。

▲CSI/O的發送/接收數據寄存器-TRDR(I/O地址=0BH)

TRDR既用來作為CSI/O的發送寄存器,也用來作為CSI/O的接收寄存器。因此,係統設計必須遵守半雙工通訊操作的製約(發送和接收操作不能同時進行)例如,CSI/O正在發送數據的期間內,若又企圖進行接收數據,則CSI/O將不工作。要注意,TRDR沒有緩衝的能力,因此,當前麵要發送的數據還在移出的過程中,又企圖將下一個數據送入發送時,就會使正在移出的數據立即被新裝入的數據所代替。同樣,當正在進行發送或接收時,應該避免進行讀取TRDR寄存器的操作。

▲CSI/O的控製/狀態寄存器——CNTR(I/O地址=0AH)

CNTR寄存器用來監測CSI/O的狀態、開放或者關閉CSI/O、允許或者禁止產生中斯、以及選擇數據時鍾的速率和時鍾的來源(即選擇外部時鍾或者內部時鍾)。

EF——結束標誌(第7位)

EF位被置為1,表示CSI/O完成了8位數據的發送或接收的操作。若EIE(結束中斷允許〉位為1,當EF被置1時,將產生發向CPU的中斷請求。隻有在EF-1時,才能對TRDR進行程序訪問。不管對TRDR寄存器進行讀或寫操作,CSI/O都會使EF位清0。RESET期間或I0ST0P方式運行時,EF位也被清0。

EIE結束中斷允許(第6位)

為了在EF=1時,能夠產生發向CPU的中斷請求,應該事先將EIE位置為1。如果EIE位為0,則中斷請求被禁止。RESET時,EIE位被清0。

TE發送允許(第4位)

置TE位為1,CSI/O就會開始一次發送操作。當TE位置為1時,數據時鍾開放。在時鍾方式時,數據時鍾從CKS引腳輸出在外部時鍾方式時,數據時鍾從CKS引腳輸入無論是外時鍾還是內時鍾方式,數據從TXS同步串行發送數據引腳移出,是和數據時鍾(內部或外部)同步的。8位數據發送完畢,CSI/O自動將TE位清0、將EF位置1,並發出中斷請求(若EIE位為]時)。注意,因為CSI/O是半雙工同步串行發送/接收器,發送和接口不能同時進行,所以TE位和RE位永遠不會等於URESET期間或I0ST0P方式時,TE位被清0。

SS2、1、0——速率選擇位2、1、0(第2—0位)

SS2、SS1和SS0位,用來選擇CSI/O發送/接收時鍾是外時鍾還是內時鍾以及速度《在RESET時,SS2、SS1和SS0等三位都被置為1。

2.11.4CSI/O的操作CSI/O的操作,可以采用狀態查詢方式或者是中斷方式進行。

▲發送——查詢方式(1)查詢CNTR寄存器的TE位,直到TE位-0為止。

(2)把要發送的第1個數據字節寫入TRDR寄存器。

(3)置CNTR寄存器的TE位=1。

(4)每發送1個數據字節,重複進行的操作。

▲發送——中斷方式(1)查詢CNTR寄存器的TE位,直到TE位=0為止。(2)把要發送的第1個數據字節寫入TRDR寄存器。(3)將CNTR寄存器的TE位和EIE位置為1。(4)當發生發送中斷,進入中斷服務程序時,把下一個要發送的數據宇節寫入TRDR寄存器。(5)將CNTR寄存器的TE位置為]。(6)每發送一個數據字節,重複進行4-5的操作。