【正文】
1 單片機(jī)常用接口芯片 及接口技術(shù)介紹 2 計(jì)算機(jī)結(jié)構(gòu) 運(yùn)算器 存儲器 I/O接口 控制器 CPU 外部設(shè)備 3 MCU基本結(jié)構(gòu) 地址總線 I/O總線 MCU SCM 存儲器 輸入 /出接口 外圍設(shè)備 控制總線 數(shù)據(jù)總線 控制 CISC結(jié)構(gòu)-馮 .諾依曼結(jié)構(gòu):如 8051, AT89系列 RISC結(jié)構(gòu)-哈佛結(jié)構(gòu):如 PIC單片機(jī) 根據(jù)片內(nèi)程序空間和數(shù)據(jù)空間、控制總線和數(shù)據(jù)總線是否分開 結(jié)構(gòu)體系 指令體系 16進(jìn)制- 匯編語言- C語言 4 接口的基本概念 ?什么是 I/O接口?連接 CPU與外設(shè)之間的邏輯電路稱 I/O接口電路,簡稱接口。 為什么需要 I/O接口?單片機(jī) IO端口 只能接收和發(fā)送邏輯電平數(shù)字信號,而 IO外設(shè)輸入輸出的信號種類、信號電平各異。 如何以不變應(yīng)萬變? ?接口電路的主要功能: 鎖存功能 緩沖功能 速度匹配 變換功能 5 ?數(shù)據(jù)鎖存功能 數(shù)據(jù)輸出都是通過系統(tǒng)的數(shù)據(jù)總線進(jìn)行的。但是由于 CPU的工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保留的時(shí)間十分短暫,無法滿足慢速輸出設(shè)備的需要。為此在接口電路中需設(shè)置數(shù)據(jù)鎖存器,以保存輸出數(shù)據(jù)直至為輸出設(shè)備所接收。數(shù)據(jù)鎖存就成為接口電路的一項(xiàng)重要功能。 ?三態(tài)緩沖功能 數(shù)據(jù)輸入時(shí),輸入設(shè)備向 CPU傳送的數(shù)據(jù)也要通過數(shù)據(jù)總線,但數(shù)據(jù)總線是系統(tǒng)的公用數(shù)據(jù)通道,上面可能“掛”著許多數(shù)據(jù)源,工作十分繁忙。為了維護(hù)數(shù)據(jù)總線上數(shù)據(jù)傳送的“秩序”,因此只允許當(dāng)前時(shí)刻正在進(jìn)行數(shù)據(jù)傳送的數(shù)據(jù)源占用數(shù)據(jù)總線,其余數(shù)據(jù)源都必須與數(shù)據(jù)總線處于隔離狀態(tài)。為此要求接口電路能為數(shù)據(jù)輸入提供三態(tài)緩沖功能。 6 ?速度匹配功能 由于速度上的差異,使得數(shù)據(jù)的 I/O傳送難以異步方式進(jìn)行,即只能在確認(rèn)外設(shè)已為數(shù)據(jù)傳送作好準(zhǔn)備的前提下才能進(jìn)行 I/O操作。而要知道外設(shè)是否準(zhǔn)備好,就需要通過接口或產(chǎn)生或傳送外設(shè)的狀態(tài)信息,以此進(jìn)行 CPU與外設(shè)之間的速度協(xié)調(diào)。 ?數(shù)據(jù)變換功能 CPU只能輸入和輸出并行的電壓數(shù)字信號 , 但是有些外部設(shè)備所提供或所需要的并不是這種信號形式 。 為此需要使用接口電路進(jìn)行數(shù)據(jù)信號的轉(zhuǎn)換 , 主要包括模 → 數(shù)轉(zhuǎn)換 、 數(shù) → 模轉(zhuǎn)換 、 串 → 并轉(zhuǎn)換和并 → 串轉(zhuǎn)換等 。 7 具體功能:(不同接口功能不同) ? 尋址功能 ? 傳遞功能 ? 位功能 ? 中斷功能 ? 聯(lián)絡(luò)功能 ? 變換功能 ? 可編程功能 ? 錯(cuò)誤檢測功能 8 典型 I/O接口的結(jié)構(gòu) 控制REG 狀態(tài)REG 數(shù)據(jù)輸出 REG 數(shù)據(jù)輸入 REG CPU 控制線 數(shù)據(jù)線 外設(shè) 數(shù)據(jù)輸入 /輸出寄存器:保存數(shù)據(jù) 控制寄存器:保存控制信息,決定接口工作方式 狀態(tài)寄存器:存放狀態(tài)信息,反映外設(shè)當(dāng)前狀態(tài) 9 MCU與外設(shè)信息交互方式 ?無條件傳送方式 ? 在進(jìn)行 I/O操作時(shí),不需要測試外部設(shè)備的狀態(tài),可以根據(jù)需要隨時(shí)進(jìn)行數(shù)據(jù)傳送操作。只有那些一直為數(shù)據(jù) I/O傳送作好準(zhǔn)備的外部設(shè)備(如發(fā)光二極管、數(shù)碼管、機(jī)械開關(guān)、 ADC, DAC),才能使用無條件傳送方式。 ?查詢方式 ?中斷方式 ?DMA方式(超 8位單片機(jī)) 10 查詢方式 ?查詢輸入 ?查詢輸出 讀 狀 態(tài) 端 口B U S Y ?輸 出 數(shù) 據(jù)NY準(zhǔn) 備 輸 出 數(shù) 據(jù)輸 入 狀 態(tài) 信 息R e a d y ?輸 入 數(shù) 據(jù)YN在 I/O操作之前,要先檢測外設(shè)的狀態(tài),以了解外設(shè)是否已為數(shù)據(jù)輸入輸出作好了準(zhǔn)備,只有在確認(rèn)外設(shè)已“準(zhǔn)備好”的情況下, CPU才能執(zhí)行數(shù)據(jù)輸入輸出操作。 硬件電路簡單 MCU速度高于外設(shè) 通常處于等待狀態(tài) 效率很低 11 8路模擬量輸入采集 M C U數(shù) 據(jù) 總 線端 口 3端 口 2端 口 4A / D 轉(zhuǎn) 換M U XA 0A 71 個(gè) 模 擬 量2 1 0啟 動8 位1 位 狀 態(tài)8 位 數(shù) 據(jù)數(shù) 據(jù)R E A D Y48路模擬量 多路開關(guān) 控制 ADC 指示 12 緩存技術(shù) 高 速 數(shù) 據(jù) 采 集設(shè) 備緩 存 器 M C U緩 存 控 制 器?緩存技術(shù)是高速數(shù)據(jù)采集和處理中的一項(xiàng)關(guān)鍵技術(shù); ?在高速數(shù)據(jù)采集系統(tǒng)中,通常在存儲設(shè)備的前端加一級緩存,可以使低速存儲設(shè)備無丟失地記錄高速數(shù)據(jù); ?是 CPU性能的一個(gè)重要指標(biāo); ?在實(shí)時(shí)視頻數(shù)據(jù)處理系統(tǒng)中的應(yīng)用非常廣泛,特別是在圖像幀率及分辨率要求比較高的場合。 13 乒乓緩沖結(jié)構(gòu) C M O SI m a g e S e n s o rC P L D / F P G AS R A M 1S R A M 2M C UY 0?Y 7H R E FV S Y N CP C L Kn C E n O E n W EA [ ] D [ ]n C E n O E n W EA [ ] D [ ]R / WD [ ]A [ ]I N T? 這種結(jié)構(gòu)是將輸入數(shù)據(jù)流通過輸入 數(shù)據(jù)選擇單元等時(shí)地將數(shù)據(jù)流分配到 兩個(gè)數(shù)據(jù)緩沖區(qū) 。 ? 在第 1個(gè)緩沖周期 , 將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊 1上 , 在第 2個(gè)緩沖周期 , 通過輸入數(shù)據(jù)選擇單元的切換 , 將輸入的數(shù)據(jù)流緩存到數(shù)據(jù)緩沖模塊 2, 同時(shí) ,將數(shù)據(jù)緩沖模塊 1緩存的第 1個(gè)周期的數(shù)據(jù)通過輸出數(shù)據(jù)選擇單元的選擇 , 送到運(yùn)算處理單元進(jìn)行處理 , 第 3個(gè)緩沖周期 , 再次切換數(shù)據(jù)的輸入與輸出緩沖模塊 。如此循環(huán) , 周而復(fù)始 。 (雙緩沖技術(shù) ) 14 14 C M O SI m a g e S e n s o r乒 乓緩 沖 控 制 器S R A M 1S R A M 2M C U第一周期 C M O SI m a g e S e n s o r乒 乓緩 沖 控 制 器S R A M 1S R A M 2M C U第二周期 C M O SI m a g e S e n s o r乒 乓緩 沖 控 制 器S R A M 1S R A M 2M C U第三周期 C M O SI m a g e S e n s o r乒 乓緩 沖 控 制 器S R A M 1S R A M 2M C U第四周期 15 中斷技術(shù) ? 中斷方式與查詢方式的主要區(qū)別 :如何知道外設(shè)是否為數(shù)據(jù)傳送作好了準(zhǔn)備 。 查詢方式是 CPU的主動形式 , 中斷方式是 CPU等待中斷請求的被動形式 。 ? 采用中斷方式進(jìn)行數(shù)據(jù)傳送時(shí) , 當(dāng)外設(shè)為數(shù)據(jù)傳送作好準(zhǔn)備之后 , 就向 CPU發(fā)出中斷請求 。 CPU接收到中斷請求后即作出響應(yīng) , 暫停正在執(zhí)行的原程序 。 而轉(zhuǎn)去為外設(shè)的數(shù)據(jù)輸入輸出服務(wù) 。 待服務(wù)完成之后 , 程序返回 , CPU再繼續(xù)執(zhí)行被中斷的原程序 。 ? 中斷源的中斷請求被 CPU響應(yīng)之后 , CPU自動把中斷源的 中斷入口地址 ( 中斷矢量地址 , 固定 ) 裝入 PC, 從中斷矢量地址處獲得中斷服務(wù)程序的入口地址 。 一般在此地址單元中存放一條 絕對跳轉(zhuǎn)指令 , 可以跳至用戶安排的任意地址空間 。 16 中斷處理流程 ?中斷請求 ?中斷響應(yīng) ?中斷處理 保護(hù)現(xiàn)場+中斷原服務(wù) ?中斷返回 ?中斷請求撤銷 中 斷 源 發(fā) 出 中 斷 請 求中 斷 響 應(yīng) 條 件 是否 滿 足 ?查 找 中 斷 入 口 地 址判 斷 中 斷 優(yōu) 先 級當(dāng) 前 指 令 執(zhí) 行完 ?執(zhí) 行 下 一 條 指 令總 中 斷 標(biāo) 志E A = 1 ?關(guān) 中 斷 , 轉(zhuǎn) 中 斷 入 口NNYNYY主 程 序低 級 中 斷高級中斷服務(wù)子程序斷 點(diǎn) 1斷 點(diǎn) 2服務(wù)子程序繼 續(xù) 執(zhí) 行主 程 序響 應(yīng) 低 級 中 斷 請 求 響 應(yīng) 高 級 中 斷 請 求返 回 低 級 中 斷返 回 主 程 序17 中斷技術(shù) ?程序中斷方式 , 大大提高了系統(tǒng)的效率 。 中斷可實(shí)現(xiàn)快速 CPU與慢速外部設(shè)備之間的并行工作 ,實(shí)現(xiàn)實(shí)時(shí)處理和故障處理 , 不但速度快而且可以實(shí)現(xiàn)多道程序方式 , 所以在計(jì)算機(jī)中被廣泛采用 。 ?但中斷請求是一種隨機(jī)事件 , 如果每傳送一個(gè)字符都要中斷消耗很大 。 為實(shí)現(xiàn)程序中斷 , 對計(jì)算機(jī)的硬件和軟件都有較高的要求 。 此外 , 由于 中斷處理常需現(xiàn)場保護(hù)和現(xiàn)場恢復(fù) 。 因此 , 對 CPU來說仍有較大的無用開銷 。 18 中斷類型 ?外部中斷類( INT0, INT1) 由單片機(jī)的輸入輸出設(shè)備等外部原因引起的,可設(shè)置請求信號是電平觸發(fā)還是邊緣觸發(fā)。 ?計(jì)時(shí)中斷類( TCON) 由內(nèi)部計(jì)時(shí)器計(jì)數(shù)產(chǎn)生計(jì)數(shù)溢出時(shí)所引起的中斷,內(nèi)部中斷,計(jì)時(shí)器可由用戶通過程序設(shè)定。 ?串行端口中斷類( SCON) 當(dāng)串行端口接收或發(fā)送完一幀數(shù)據(jù)時(shí),修改SCON,向 CPU申請中斷。 如何定義矢量地址和優(yōu)先級參考具體的單片機(jī)。 19 外部中斷源擴(kuò)展 ?利用計(jì)時(shí)器擴(kuò)充外部中斷源 當(dāng)計(jì)時(shí)器設(shè)置為計(jì)數(shù)方式時(shí),一旦外部信號從計(jì)數(shù)器引腳輸入一個(gè)負(fù)跳變信號,計(jì)數(shù)器+ 1;將計(jì)時(shí)器引腳作為外部中斷請求相連,計(jì)時(shí)器的溢出中斷標(biāo)志及中斷服務(wù)程序作為擴(kuò)充外部中斷源的標(biāo)志和中斷服務(wù)程序。 ?中斷和軟件查詢相結(jié)合擴(kuò)充外部中斷源