




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10章串行接口和DMA接口
10.1串行通信的基本概念串行通信定義
所謂串行通信就是一條信息的各位數據位在一個信道上按照固定的時間長度被逐位按順序傳送的通訊方式稱為串行通訊。D0D1D2D3D4D5D6D7t串行通信的信息傳送速度低慢,信息率低,但串行通信的成本低,適合遠距離傳輸。串行通信的數據傳送方式單工:接收方有接收器,發送方有發送器,數據只能一條信道單向傳送全雙工:接收方和發送方各有一組發送器和接收器,數據在兩條獨立的信道上同時進行雙向傳送半雙工:接收方和發送方各有一組發送器和接收器,數據在一條共享的信道上分時進行雙向傳送發送器接收器A站B站信號地單工發送器接收器接收器發送器A站B站信號地全雙工發送器接收器發送器接收器A站B站信號地半雙工串行通信的過程串口電話線調制解調器計算機串行通訊控制器調制解調器計算機串行通訊控制器串口將并行數據轉化為串行數據,聯絡CPU和調制解調器的通信為調制解調器和串行通信控制器之間提供一個標準接口,規定連線的含義。將數字信號轉化為模擬信號將模擬信號轉化為數字信號為調制解調器和串行通信控制器之間提供一個標準接口,規定連線的含義。將串行數據轉化為并行數據,聯絡CPU和調制解調器的通信串行通信相關概念波特率:每秒傳送的數據位數標準波特率:1103006001200180024004800960019200發送方發送1個比特位所用的時間長度稱為發送時鐘。接受方接受1個比特位所用的時間長度稱為接收時鐘。起始位發送的數據101001…
…接收的數據發送時鐘接收時鐘注意:串行通信中傳送距離隨著傳送速率的增加而減少。波特率因子:收發時鐘倍頻于波特率的倍數稱為波特率因子波特率因子可以是1,16,32,64。例如:如果波特率是300,波特率因子是16,則發送時鐘和接收時鐘的頻率是4800,接收時鐘16倍頻于波特率100接收時鐘接收的數據8個起始位中心16個位采樣16個位采樣檢測到起始位異步通信協議:數據以單個字符為單位在信道上傳輸,兩個字符之間的傳輸間隔是任意的,所以每個字符的前后要加上一些特殊的數位作為分割位。串行通信的工作方式空閑位停止位1,1.5或2位奇偶校驗數據位(5~8位)起始位不限有/無(先低后高位)1位0/101110/10/10/1…0/10/10LSBMSB第n個字符第n+1個字符起始位:1位,低電平,表示一個字符開始傳遞數據位:5~8位,先低位后高位校驗位:1位/0位,奇偶校驗停止位:1位、1.5位或2位,高電平,表示字符傳遞結束異步傳輸的幀格式接收時鐘發送時鐘1起始位0發送的數據收發時鐘16倍頻于波特率接收的數據采用異步通信時,接收方總是在每個字符的起始位開始的時候進行一次時鐘的重新定位,因此當收發時鐘的偏差不大時,不會產生采樣錯誤,但是異步通信的無用比特位的比重很大。所以異步通信的特點是不要求雙方時鐘完全一致,但傳輸率比較低。同步通信協議:數據以字符組為單位的在信道上傳輸,發送方在傳送的字符組前要加上同步字符,接受方以同步字符作為接收的標志。發送方接收方同步字符同步字符字符字符字符…
…在同步傳輸中,由于收發雙方一次可以傳遞數據單位是一個字符組,這就要求接收方要經過多次采樣來接收數據,所以要求雙方時鐘完全一致,但是同步傳輸無用的信息量較少,所以傳送的效率高。因此同步通信的特點是發送率高,但發送雙方要求嚴格的相同時鐘周期。SYNSYNSOHTITLESTX正文ETX/ETBBCC幀信息各部分的含義:
SYN:同步字段,單同步加1個,雙同步加2個。
SOH:序始字段,它表示標題的開始,標題中一般包括源地址、目標地址和路由指示等信息。
TITLE:標題字段,包括用戶自定義的附加信息。
STX:文始字段,標示正文傳送的開始。
ETX/ETB:文終/組終字段,如果將正文分成很多個數據塊在不同的幀中傳送,每一個分數據塊后面用組終字符,最后一個分數據塊后面用文終字符。
BCC:效驗位字段,奇偶校驗或CRC校驗同步傳輸的信息幀格式串行通訊接口標準RS-232C接口標準RS-422A接口標準RS-485接口標準
RS-232C是美國電子工業協會制定的一種串行物理接口標準,現在在微機中廣泛的使用,它為數據終端設備DTE(計算機)和數據通信設備DCE(調制解調器)的連接提供了一個標準的接口。對于RS-232C接口我們從它的機械特性,電氣特性和功能特性三個方面介紹它。RS-232C接口的機械特性9針接口25針接口RS-232C接口的電氣特性
RS-232-C采用負邏輯規定邏輯電平,信號電平與通常的TTL電平不一致,規定-5~-15V表示1,+5~+15V表示0,所以需要在接收端和發送端進行電平的轉化。信號地+12V+5V-12V接收器發送器RS-232C電平TTL電平TTL電平MC1488MC1489MC1488和MC1489電平轉換器RS-232C接口的功能特性(信號線的定義)TxD:發送數據,DTEDCERxD:接收數據,DTEDCEDTR:DTE準備好,DTEDCEDSR:DCE準備好,DTEDCERTS:請求發送,DTEDCECTS:允許發送,DTEDCERI:振鈴指示,DTEDCECD:載波檢測,DTEDCESG:信號地DTE:數據終端設備(計算機)DCE:數據通信設備(調制解調器)10.2可編程串行接口控制器8251AIntel8251A是為Intel微處理器設計的可編程串行通信接口,是通用同步/異步接收發送器。通過編程,可工作在全雙工的串行通信的同步方式或異步方式下。在異步方式傳送時,可用5~8位表示字符,用1位作為奇/偶校驗,能自動為每個數據增加1個啟動位,增加1個、1.5個或2個停止位,波特率為0~19.2K。在同步方式傳送時,可用5~8位表示字符,自動插入同步字符,內部能自動檢測同步字符,波特率為0~64K。D2D3RXDGNDD4D5D6D7TXCWRCSC/DRDRXRDYD1D0VCC
RXCDTRRTSDSRRESETCLKTXDTXECTSSYNDETTXRDY123456789101112131428272625242322212019181716158251A8251A的引腳連接8251A與CPU的連接信號內部寄存器訪問控制信號,由于8251A只有8位數據線,將地址總線的A0接入8251A的C/D端,用來區分8251A的內部寄存器。發送緩沖器準備好信號,8251A發送該信號給CPU表明發送緩沖區空,可以接收新字符。當CPU接到該信號后,就向8251A傳送一個新字符。并-串轉化器空信號,8251A發送該信號給CPU,表明并-串轉化器空,指示了一個發送字符過程的完成。接收緩沖器準備好信號,該信號表明8251A已從外設接到一個字符,接收緩沖區滿。當CPU接到該信號后,就從8251A取走一個字符。該信號僅用在同步傳輸下。作為輸出時,8251A工作于內同步方式,當8251A檢測到所要求的同步字符后,該信號變為有效電平,同步傳輸開始;作為輸入時,8251A工作于外同步方式,從該引腿引入的正跳變,使8251A進入同步傳輸。8251A的引腳連接8251A與外設的連接信號8251A和調試解調器的收發聯絡信號發送器數據信號端用來輸出數據接收器數據信號端用來輸入數據接收時鐘發送時鐘8251A的編程結構指示傳輸過程中的某個錯誤或者當前的傳輸狀態決定接口的工作方式將輸入線上的串行數據轉化為并行數據。接收移位寄存器的并行數據隨時通過數據總線送至CPU接收數據總線的并行數據隨時送至移位寄存器。將并行數據轉化為串行數據通過輸出線送出。決定接口工作方式是同步傳輸還是異步傳輸,以及數據幀格式。在同步方式下,接收并存儲同步字符。8251A的端口地址在微機系統中,地址總線的A0端接入8251A的C/D端,當A0為0時訪問的是偶地址端口,當A0為1時訪問的是奇地址端口,即通過C/D端為0或者1來區分內部寄存器。模式寄存器對應奇地址單元,即C/D端為1同步字符寄存器對應奇地址單元,即C/D端為1控制寄存器對應對于奇地址單元,即C/D端為1狀態寄存器對應對于奇地址單元,即C/D端為1數據輸入緩沖器對應偶地址單元,即C/D端為0數據輸出緩沖器對應偶地址單元,即C/D端為0如何用2個端口地址區分7個寄存器呢?8251A的初始化8251A初始化的約定:芯片復位后,第一次奇地址寫入的值作為模式字送模式寄存器。
若模式字規定8251A為同步傳輸模式,接著往奇地址端口輸出的字節為同步字符。此后除復位命令,往奇地址寫入的值將送到控制寄存器,從奇地址讀出的是狀態寄存器;
往偶地址端口寫入的值送數據輸出寄存器,從偶地址讀出數據輸入寄存器的值。
模式寄存器由于8251A可以工作在同步方式下,也可以工作在異步方式下,模式寄存器有兩種格式,當模式寄存器的最低兩位為0時,8251A工作于同步模式,該寄存器為同步模式寄存器。
SCSESDEPPENL2L1000–內同步1–外同步數據位的位數00–5位01–6位10–7位11–8位同步模式0–無效驗位1–有效驗位0–奇效驗1–偶效驗0–2個同步字符1–1個同步字符1C/D當模式寄存器的最低兩位不全為0時,8251A工作于異步模式,該寄存器為異步模式寄存器。
1C/DS2S1EPPENL2L1B2B1停止位的數目:00–無意義01–1個停止位10–1.5個停止位11–2個停止位數據位的位數00–5位01–6位10–7位11–8位00-同步模式01-波特率因子110-波特率因子1611-波特率因子640–無效驗位1–有效驗位0–奇效驗1–偶效驗控制寄存器EHIRRTSERSBRKRXENDTRTXEN8251A芯片復位后,向奇地址端口寫完模式寄存器和同步字符后(如果是同步方式),以后除了復位命令外,寫入奇地址端口的值作為控制字送控制寄存器。1C/D發送允許使DTR引腿為低電平接收允許使TXD引腿為低電平,停止發送使狀態寄存器的出錯標志復位使RTS引腿為低電平進行內部復位搜索同步字符異步模式下的初始化程序舉例:例:設8251A的端口地址是51H和52H,采用異步通信方式,7位數據位,2個停止位,偶效驗方式,波特率因子為16,寫出初始化8251A的程序段。MOVAL,0FAHOUT51H,AL設置模式寄存器111110102位停止位,偶效驗,7位數據位,波特率因子16MOVAL,37HOUT51H,AL設置控制寄存器00110111請求發送信號RTS有效,清除狀態寄存器的出錯標志,接收啟動,數據終端準備好信號DTR有效,發送啟動。同步模式下的初始化程序舉例:例:設8251A的端口地址是51H和52H,內同步通信方式,同步字符的數目為2個,均為16H,7位數據位,偶效驗,寫出初始化8251A的程序段。MOVAL,38HOUT51H,AL設置模式寄存器001110002個同步字符,采用內同步方式,偶效驗,7位數據位。MOVAL,0B7HOUT51H,AL設置控制寄存器10110111搜索同步字符,請求發送信號RTS有效,清除狀態寄存器的出錯標志,接收啟動,數據終端準備好信號DTR有效,發送啟動。MOVAL,16HOUT51H,ALOUT51H,AL兩個同步字符均為16H例:設8251A的端口地址是51H和52H,使8251A內部復位,并且允許接收,又允許發送,則程序段為:…………MOVDX,51HMOVAL,00HOUTDX,AL;控制字,停止通信MOVAL,40HOUTDX,AL;控制字,置D6=1,使內部復位MOVAL,0DEHOUTDX,AL;模式字,復位后首次訪問奇地址MOVAL,05H;控制字,置D0、D3=1,允許接收和發送OUTDX,AL
…………狀態寄存器8251A芯片復位后,向奇地址端口寫完模式寄存器和同步字符后(如果是同步方式),以后除了復位命令外,從奇地址端口讀出的值是狀態寄存器。1C/DDSRSYNDETFEOEPETXERXRDYTXRDY數據輸出緩沖器準備好輸出移位寄存器為空指示奇偶效驗錯誤指示覆蓋錯誤與SYNDET引腿電平相同指示DSR引腿為低電平數據輸入緩沖器準備好指示幀格式錯誤DSRSYNDETFEOEPETXERXRDYTXRDY狀態寄存器的TXRDY=1指示出數據輸出緩沖器準備好,即輸出緩沖器為空,CPU可以向8251A發送數據;狀態寄存器的RXRDY=1指示出數據輸入緩沖器準備好,即輸入緩沖器滿,CPU可以從8251A讀取數據;這兩個狀態位可以在程序設計時加以利用,實現對8251A數據發送過程和接收過程的控制。DSRSYNDETFEOEPETXERXRDYTXRDY狀態寄存器的PE、OE、FE位為1時分別指示出傳輸過程中的三種錯誤,在程序設計時可以加以利用,實現對數據傳輸過程中數據準確性的測試。系統復位送模式字送同步字符1同步模式?NY要同步字符2?送同步字符2YN送控制字內部復位?YN讀狀態字N傳送數據傳輸結束?NN能傳輸嗎?Y傳輸出錯?Y結束Y利用狀態字進行編程的舉例:下面的程序段先對8251A初始化,然后對狀態寄存器的狀態位進行測試,本程序通過8251A接收80個字符。規定8251A的端口地址是51H,52H。即控制寄存器和狀態寄存器端口地址為51H,數據輸入寄存器和數據輸出寄存器的端口地址為52H。字符輸入后,放在BUFFER標號所指的內存緩沖區中。程序的外循環每次循環接收一個字符,共循環80次;內循環對狀態寄存器的RXRDY不斷測試,看8251A是否從外設接收到一個字符,如果接收到就讀入并送內存緩沖區;程序還對狀態寄存器的出錯指示位進行檢測,如果傳輸過程中出現錯誤就停止并調用出錯處理子程序。出錯處理子程序沒有具體給出。MOVAL,0FEH;設置模式字,異步模式,波特率因子為16OUT51H,AL;8個數據位,2個停止位,偶校驗MOVAL,37HOUT51H,AL;設置控制字,啟動收發器工作,清除出錯位MOVDI,0;變址寄存器初始化MOVCX,80;置循環次數,共收取80個字符BEGIN:INAL,51H;讀取狀態寄存器TESTAL,02H;測試RXRDY是否為1JZBEGIN;如果RXRDY為0,則讀狀態字繼續測試INAL,52H;從數據輸入寄存器讀取字符
MOVDX,OFFSETBUFFERMOV[DX+DI],AL;將AL中字符送緩沖區INCDI;修改緩沖區指針DIINAL,51H;讀取狀態寄存器TESTAL,38H;測試出錯標志位,檢查傳輸有無錯誤
JNZERROR;如果有錯,轉入出錯處理程序LOOPBEGIN;如沒有錯,則繼續循環接收下1個字符JMPEXIT;如輸入滿80個字符,則結束ERROR:CALLERR_OUT;調用出錯處理程序EXIT:…例:雙機串口通信CPU8251ATxDRxDSGTxCRxC8251ATxDRxDSGTxCRxCCPU時鐘時鐘EIA/TTL變換EIA/TTL變換要求:在甲乙兩臺微機之間進行串行通信。甲機發送,乙機接收。要求把甲機上開發的應用程序(其長度為2DH)傳送到乙機中去。采用起止式異步方式,字符長度為8位,2位停止位,波特率因子為64,無校驗,波特率為4800。CPU與8251A之間用查詢方式交換數據。口地址分配是:309H為命令/狀態口,30AH為數據口。由于是近距離傳輸,硬件連接只需TxD、RxD和SG三根線連接就能通信,可以不設MODEM,同時是采用查詢I/O方式,故收/發程序中只需檢查發/收準備好的狀態是否置位,即可收發1個字節。軟件編程:接收和發送程序分開編寫,每個程序段中包括8251A初始化,狀態查詢和輸入/輸出幾部分。發送程序:(略去STACK和DATA段)CODESEGMENTASSUMECS:CODESENDPROCSTART:MOVDX,309H
MOVAL,00H
OUTDX,AL;控制字,停止通信
MOVAL,40H
OUTDX,AL;控制字,內部復位NOPMOVAL,0CFHOUTDX,AL;模式字(異步,2位停止位,字符長度;為8位,無校驗,波特率因子為64)
MOVAL,31HOUTDX,AL;控制字(RTS、ER、和TxEN均置位)
MOVCX,2DH;傳送字節數
MOVSI,300H;發送區首址L1:MOVDX,309H
INAL,DX;狀態字
TESTAL,38H;查出錯標記位
JNZERR;ERR省略
ANDAL,01H;查狀態位D0(TxRDY)=1?
JZL1;發送未準備好,則等待
MOVDX,30AH;數據口
MOVAL,[SI];從發送區取1字節發送
OUTDX,AL
INCSI;修改內存地址
DECCX;字書數減1JNZL1;未發送完,繼續MOVAX,4CHINT21H;已送完,回DOSSENDENDPCODEENDSENDSTART接收程序:(略去STACK和DATA段)CODESEGMENTASSUMECS:CODERECPROCSTART:MOVDX,309H
MOVAL,00H
OUTDX,AL;控制字,停止通信
MOVAL,40H
OUTDX,AL;控制字,內部復位NOPMOVAL,0CFHOUTDX,AL;模式字(異步,2位停止位,字符長度;為8位,無校驗,波特率因子為64)
MOVAL,16HOUTDX,AL;控制字(ER、RxEN和DTR均置位)
MOVCX,2DH;接收字節數
MOVDI,400H;接收區首址L2:MOVDX,309H
INAL,DX;狀態字
TESTAL,38H;查出錯標記位
JNZERR;ERR省略
ANDAL,02H;查狀態位D1(RxRDY)=1?
JZL2;發送未準備好,則等待MOVDX,30AH;數據口INAL,DX
MOV[DI],AL;從發送區取1字節發送
INCDI;修改內存地址
DECCX;字書數減1JNZL2;未發送完,繼續MOVAX,4CHINT21H;已送完,回DOSRECENDPCODEENDSENDSTART并行通信和串行通信的比較并行通信傳輸速度快,信息率高,不適合遠距離通信;串行通信傳輸速度慢,信息率低,適合遠距離通信。串行通信在傳遞一個字符的過程中,字符從哪里開始,從哪里結束有嚴格的信息幀的組織格式,串行通信有RS-232C等成熟的標準;并行通信在字符傳遞的過程中,沒有信息幀的組織格式,并行通信也沒有標準化。串行通信中嚴格的區分了異步通信和同步通信方式;在并行通信中也沒有對異步傳輸和同步傳輸作出嚴格的規定。實際上在并行通信中,如果CPU用一個時鐘信號管理接口和外設,那么這種并行傳輸看作是同步傳輸;如果CPU和接口與外設之間只有應答信號,這種并行傳輸看作是異步傳輸。10.3DMA控制接口8237A考慮外設與接口的數據傳輸方式:1)查詢方式:CPU通過程序讀取接口的狀態寄存器,查詢外設是否處于就緒狀態,在該方式中CPU的絕大部分時間在循環等待,利用率極低。傳輸一個字符的過程中,CPU全程干預。2)中斷方式:當外設準備就緒后,發送中斷請求給CPU,要求CPU提供服務,在該方式中,CPU的利用率得到了極大的提高。在傳輸一個字符的過程中,CPU要進行中斷響應和中斷返回兩次干預。
雖然中斷技術使得CPU的利用率得到了極大的提高,但是對于大量數據的成批傳輸,該方式仍顯不足。例如一次傳遞1M字節的文件,CPU要進行100萬次的中斷服務,每次中斷服務都要經過中斷響應,保存斷點,保存現場,處理服務子程序和中斷返回等過程,使CPU的利用率大幅下降。DMA的基本概念為了進一步提高CPU的利用率,人們提出了直接內存訪文技術,即DirectMemoryAccess,簡稱DMA技術。在DMA方式下,外部設備利用專門的接口電路直接和內存進行高速的數據交換,不需要CPU的干預。這樣在進行數據傳輸時就不需要像中斷那樣要進行保護斷點之類的一系列操作,使CPU的利用率得到大幅度的提高。利用DMA方式進行數據傳輸時,當然要利用系統中的數據總線,地址總線和控制總線,但是系統的總線是由CPU管理控制的。因此用DMA方式進行數據傳輸的時候,接口電路需要向CPU發送總線請求,申請CPU讓出總線,即把總線控制權交給控制DMA傳輸的接口電路。這種能夠控制系統總線完成外設與內存之間大量數據交換的接口電路就是DMA控制器。
基本的DMA控制器-外設準備進行DMA操作時,DMA控制器必須能夠接收外設發來的DMA請求信號,并向CPU發送總線請求信號。-CPU接收到總線請求信號后,如果同意放棄總線,向DMA控制器發送總線請求應答信號。-DMA控制器得到總線控制權后,能向地址總線發地址信號指示出寫入數據的內存單元或者讀出數據的內存單元,因此DMA控制器中必須有地址寄存器存放讀寫數據的起始內存單元的地址。而且每傳送一個字節,會自動對地址寄存器進行修改,指向下一個要傳送的字節。-DMA控制器應該能判斷DMA過程是否結束,即一次傳送的字節數,因此DMA控制器必須有字節計數器,用來存放要傳遞的字節數,并且每傳遞一個字節字節計數器自動減1。-DMA過程結束時,DMA控制器能向CPU發DMA中斷結束信號,交還總線控制權。DMA控制器的基本組成DMA接口主存CPUDMA
控制邏輯
中斷邏輯設備HLDA地址寄存器字節計數器HOLD中斷請求數據線地址線+1-1溢出信號DREQDACK數據緩沖寄存器DMA數據傳送的過程
如果外設向內存傳送一個數據塊(輸入過程),使用DMA方式時,系統按照下面的過程動作:1)外設向DMA發送一個DMA請求2)DMA控制器發總線請求,得到CPU的允許信號取得總線控制權3)DMA控制器中的地址寄存器的內容送地址總線4)DMA控制器向外設發送確認DMA傳輸信號,用來通知外設將數據送到數據總線。5)數據總線上的數據送到地址總線所指示的內存單元6)地址寄存器的值加1,指示下一個數據存放的內存單元7)字節計數器的值減18)如字節計數器的值不為0,則回到第3步,否則DMA過程結束允許傳送?地址寄存器->地址總線數據->數據總線->主存
地址寄存器加1字節計數器減1數據塊傳送結束?向CPU申請中斷請求DMA請求否否是是DMA控制器預處理:主存起始地址傳送數據個數啟動設備DMADMA繼續執行主程序后處理:中斷服務程序做DMA結束處理,如校驗等工作繼續執行主程序CPU8237A是INTEL系列中的高性能DMA控制器:8237A內部包括4個獨立的通道,可以同時在4個外設和存儲器之間進行DMA傳輸。
外設和存儲器之間的傳輸速度可達1.6MB/S
通過軟件編程可控制8237A工作在多種方式下,使用方便。DMA控制器一方面和其他接口一樣,接受CPU對它的讀/寫操作,包括向DMA控制器設置控制字,設置地址初值和計數初值以及讀取狀態字,這時稱它為總線從模塊;一方面,DMA控制器能夠控制系統總線,像CPU一樣操縱外設和存儲器之間的數據交換,這時稱它為總線主模塊。因此,對8237A的內部結構和外部連接也是從兩方面分析。8237A主要功能8237A內部結構8237A的引腿及其功能DMA控制器向CPU發送的總線請求信號CPU向DMA控制器發送的總線響應信號外設向DMA控制器發送的DMA請求信號DMA控制器向外設發送的DMA應答信號雙向最低4位地址線。當作為從模塊時,地址線A3~A0作為輸入端對8237A內部寄存器進行尋址;作為主模塊時,將當前寄存器低字節低4位地址送地址總線。將當前地址寄存器的低字節的高4位地址送地址總線DMA過程結束信號,該信號位雙向。外部向DMA控制器輸入一個信號,DMA過程結束;當DMA控制器任一通道的字節計數器位0時輸出一個信號標識DMA過程結束。由I/O端口向內存寫入數據時,即8237A工作在寫傳輸時有效。由內存向I/O端口讀取數據時,即8237A工作在讀傳輸時有效。8位雙向數據線。當作為從模塊時,接收CPU從數據總線發來的控制字或將狀態字輸出到數據總線。作為主模塊時,將當前地址寄存器的高8位送地址總線高8位8237A通道的工作模式(由通道的模式寄存器控制)-8237A的每個通道都可以工作在下面四種工作模式之一:單字節傳輸模式:通道被設置為此模式時,每完成一個字節的傳輸,字節計數器就減1,地址寄存器加1或減1,然后,8237A釋放系統總線,隨后立即檢測DREQ端,若有效則8237A將又立即CPU發總線請求,獲得總線控制權后,再次進行DMA傳輸。塊傳輸模式:通道被設置為此模式時,只有在字節計數器減為0時8237A才釋放系統總線。所以此模式可連續進行多個字節的傳輸。請求傳輸模式:與塊傳輸模式相似,不同的只是在每傳輸1個字節后8237A都對DREQ進行檢測,若DREQ變為無效電平則暫停傳輸,若DREQ有效時就將在原來的基礎上又繼續DMA傳輸。級聯傳輸模式:即幾個8237A通過級聯構成主從式DMA系統。主片設置為級聯模式,從片設置為所需的其它三種模式之一(最多可由5個8237A構成二級16個DMA通道的DMA系統)。-8237A的每個通道都可以工作在自動預置模式下:自動預置是指在DMA傳輸過程中,當前字節計數器的值到達0時,當前地址寄存器和當前字節計數器自動從基地址寄存器和基本字節計數器中重新得到新值,進入下一個數據傳輸過程。8237A的模式寄存器傳輸類型00–校驗傳輸01–寫傳輸10–讀傳輸11–無意義通道選擇:00-選通道001-選通道110-選通道211-選通道3自動預制功能:0–禁止1–允許地址增減選擇0–地址減11–地址加1模式選擇:00–請求傳輸模式01–字節傳輸模式10–塊傳輸模式11–級聯傳輸模式D7D6D5D4D3D2D1D08237A的工作方式(由8237A的控制寄存器控制)-內存到內存傳輸8237A可以將數據從內存的一個區域傳輸到另一個區域,即將源存儲區域的數據先送入8237A的暫存器,再送到目的存儲區域,每次傳輸需用兩個總線周期。在存儲器到存儲的傳輸中,規定:通道0:地址寄存器存放源地址,傳送一個字節地址寄存器加1(或減1)。通道1:地址寄存器和字節計數器存放目的地址和計數值。每傳送一個字節地址寄存器加1(或減1),字節計數器減1。注意:進行存儲器到存儲器的傳輸過程中,如果通道0的源地址寄存器的值保持不變,通道1目的地址寄存器的值仍進行加1或減1操作,即同一個數據傳輸到整個目的存儲區域。-通道優先級的設定8237A的4個通道可接4個I/O設備,其優先級管理方式有兩種:1)固定優先級方式——優先級由高到低為通道0、通道1、通道2、通道3。2)循環優先級方式——通道的優先級依次循環。當某個通道的DMA傳輸過程完成后,其優先級變為最低。例如某此傳輸前各通道優先級為2-3-0-1,通道2完成傳輸后,各通道優先級變為3-0-1-2。-狀態及工作時序
8237A的工作過程可分為以下七個狀態:SI狀態:各通道沒有DMA請求的狀態,也稱為空轉狀態SI。該狀態下8237A對CS和DREQ進行測試,判斷是否被CPU選中或者是否有DMA請求。S0狀態:某一通道的DREQ有效,即此通道有DMA請求,則8237A通過引腿HRQ向CPU發出總線請求而進入總線請求狀態S0,S0狀態一般重復多次,直到CPU發出總線允許信號轉入S1狀態。S1狀態:8237A傳送地址鎖存信號,以便鎖存S2狀態下輸出的高8位地址。S2狀態:8237A由引腿DB7~DB0輸出高8位地址,在S1狀態下給出的地址鎖存信號作用下進入地址鎖存器,引腿A7~A0輸出低8位地址進地址總線低8位。SW狀態:如果外設速度較慢則插入多個SW等待狀態。S3狀態:將地址鎖存器中的高8位地址送地址總線高8位。如果數據塊的傳輸跨越了內存的256個字節,才需要該狀態,否則不需要該狀態。S4狀態:傳輸模式測試,如果是塊傳輸模式或請求傳輸模式則轉入S2狀態。在整個工作過程中每個狀態對應1個時鐘周期,8237A有兩種工作時序:1)普通工作時序:一次DMA傳輸經歷S2-S3-S4共3個時鐘周期2)壓縮工作時序:一次DMA傳輸經歷S2-S4共2個時鐘周期8237A的控制寄存器存儲器-存儲器傳輸中0:源地址變化1:源地址不變0:啟動8237A工作1:停止8237A工作0:普通時序1:壓縮時序D0D1D2D3D4D5D6D7DMA應答信號0:低電平有效1:高電平有效DMA請求信號0:高電平有效1:低電平有效0:不擴展寫信號1:擴展寫信號0:固定優先級
1:循環優先級0:存儲器-外設1:存儲器-存儲器8237A的狀態寄存器8237A狀態寄存器的低4位指示4個通道計數結束狀態。8237A狀態寄存器的高4位指示4個通道DMA請求狀態。D7D6D5D4D3D2D1D0通道0計數結束通道1計數結束通道3計數結束通道2計數結束通道2有DMA請求通道3有DMA請求通道1有DMA請求通道0有DMA請求通過讀取8237A的狀態寄存器,CPU可以了解到哪一個通道有DMA請求,哪一個通道的DMA過程結束了。請求標志的設置
8237A每一個通道的DMA請求即可以通過硬件發出,也可以通過軟件發出;硬件上是通過DMA控制器的DREQ引腳引入DMA請求的,軟件上是通過對DMA請求標志的設置引入DMA請求的。8237A的每一個通道都配有一個DMA請求觸發器,用來設置本通道的DMA請求標志。物理上4個請求觸發器對應著一個請求寄存器。D7D6D5D4D3D2D1D0DMA請求標志:0–
無DMA請求1–
有DMA請求不用通道選擇:00–通道001–通道110–通道211–通道3屏蔽標志的設置8237A的每一個通道都配有一個DMA屏蔽觸發器,用來設置本通道的DMA屏蔽標志。當一個通道的屏蔽標志為1時,不能響應任何DMA請求。物理上4個屏蔽觸發器對應一個屏蔽寄存器。D7D6D5D4D3D2D1D0屏蔽設置:0–
去處屏蔽1–
設置屏蔽不用通道選擇:00–通道001–通道110–通道211–通道3D7D6D5D4D3D2D1D0通道0設置屏蔽通道1設置屏蔽通道2設置屏蔽通道3設置屏蔽綜合屏蔽命令復位命令和清除先/后觸發器命令復位命令復位命令和RESET引腳的功能相同,使控制寄存器、狀態寄存器、DMA請求寄存器、暫存器以及先/后觸發器清0、使屏蔽寄存器復位。清除先/后觸發器命令先/后觸發器是用來控制DMA通道中地址寄存器和字節計數器的初值設置的。8237A只有8位數據線,一次只能傳輸一個字節,而地址寄存器和字節計數器是16位,所以這些寄存器需要2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 呼倫貝爾學院《英語教學名家教學賞析》2023-2024學年第二學期期末試卷
- 2017小學生消防課件
- 一流課程匯報答辯
- 泰山護理職業學院《基礎俄語Ⅲ》2023-2024學年第一學期期末試卷
- 甘肅省2025屆數學三下期末調研試題含解析
- 星海音樂學院《小動物臨床用藥專題》2023-2024學年第二學期期末試卷
- 浙江省寧波市北侖區部分校2024-2025學年小升初數學檢測卷含解析
- 石家莊學院《建筑審美與評論》2023-2024學年第二學期期末試卷
- 梅州市蕉嶺縣2025年數學四下期末綜合測試試題含解析
- 西安電子科技大學長安學院《藥物合成原理》2023-2024學年第二學期期末試卷
- 客戶受電工程竣工檢驗意見書(南網)
- 多媒體課件制作流程圖
- MT_T 695-1997 煤礦用高倍數泡沫滅火劑通用技術條件_(高清版)
- 萬科房地產集團公司全套管理制度及流程圖
- 《商業發票》word版
- 土地使用權(住宅用地)市場比較法評估測算表
- DFMEA全解(完整版)
- 《教案封面設計》word版
- 奧迪A4L汽車驅動橋的結構設計畢業設計
- (最新整理)世界水利發展史
- 超市新員工進職[新版]ppt課件
評論
0/150
提交評論