




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 89C51除芯片自身具有UART可用于串行擴展I/O口線以外,還可利用89C51的34根I/O口線進行SPI或I2C的外設芯片擴展,以及單總線的擴展。 SPI系統可直接與各個廠家生產的多種標準外圍器件直接接口,它只需4條線: 串行時鐘線(SCK)、 主機輸入/從機輸出數據線MISO、 主機輸出/從機輸入數據線MOSI 低電平有效的從機選擇線CS(SS)。 在SPI接口中,數據的傳輸只需要1個時鐘信號和2條數據線。 圖8-1是SPI總線系統典型結構示意圖。圖8-1 SPI外圍擴展示意圖 SPI有較高的數據傳送速度,主機方式最高速率可達1.05 Mb/s,目前不少外圍器件都帶有SPI接口。 在大
2、多數應用場合中,使用1個MCU作為主機,控制數據向1個或多個從外圍器件的傳送。 從器件只能在主機發命令時,才能接收或向主機傳送數據。 其數據的傳輸格式是高位(MSB)在前,低位(LSB)在后。 SPI總線有以下主要特性: 全雙工、3線同步傳輸;主機或從機工作;提供頻率可編程時鐘;發送結束中斷標志;寫沖突保護;總線競爭保護等。其典型時序圖如圖8-2所示。圖8-2 SPI串行總線典型時序圖1) 用一般I/O口線模擬SPI操作 對于沒有SPI接口的89C51來說,可使用軟件來模擬SPI的操作,包括串行時鐘、數據輸入和輸出。 對于在SCK的上升沿輸入(接收)數據和在下降沿輸出(發送)數據的器件,一般應
3、取圖8-3中的串行時鐘輸出P1.1的初始狀態為1;在允許接口芯片后,置P1.1為0。 圖8-3為89C51(MCU)與MCM2814(E2PROM)的硬件連接圖。圖8-3 SPI總線接口原理圖 因此,MCU輸出1位SCK時鐘,同時,使接口芯片串行左移,從而輸出1位數據至89C51的P1.3(模擬MCU的MISO線);再置P1.1為1,使89C51從P1.0輸出1位數據(先為高位)至串行接口芯片。至此,模擬1位數據輸入/輸出完成。 以后再置P1.1為0,模擬下一位的輸入/輸出依次循環8次,可完成1次通過SPI傳輸1字節的操作。 對于在SCK的下降沿輸入數據和上升沿輸出數據的器件,則應取串行時鐘輸
4、出的初始狀態為0,在接口芯片允許時,先置P1.1為1,此時,外圍接口芯片輸出1位數據(MCU接收1位數據);再置時鐘為0,外圍接口芯片接收1位數據(MCU發送1位數據),可完成1位數據的傳送。 圖8-3中,P1.0模擬MCU的數據輸出端(MOSI),P1.1模擬SPI的SCK輸出端,P1.2模擬SPI的從機選擇端,P1.3模擬SPI的數據輸入端(MISO)。 單片機應用系統中,最常用的功能無非是開關量I/O、A/D、D/A、時鐘、顯示及打印功能等等。下面分析利用單片機串口與多個串行I/O接口芯片進行接口的可行性。 HT1380是一個8腳的日歷時鐘芯片,它可以通過串行口與單片機交換信息,如圖8-
5、4所示。圖8-4 HT1380與單片機接口電路圖8-5MAX7219與單片機接口電路 該芯片可驅動8個LED顯示器,這在智能儀表中已經足夠了。89C51單片機與它的接口如圖8-5所示。 MAX1458是一個可對差分輸入信號(如電橋)進行程控放大(放大倍數可以由軟件設定),并進行12位A/D轉換的芯片。它將放大與轉換電路集成在一個芯片上,圖8-6給出了它與單片機的串行接口電路。圖8-6串行A/D芯片與單片機接口電路 除上面3種芯片之外,單片機還可以通過串行接口芯片與E2PROM、D/A轉換芯片等連接。它們與CPU的串行接口方式與以上幾種芯片類似,即: 都需要通過單片機的開關量I/O口線進行芯片選
6、擇; 當芯片未選中時,數據端口均處于高阻狀態; 與單片機交換信息時均要求單片機串行口以方式0進行; 傳輸數據時的幀格式均要求先傳送命令/地址,再傳送數據; 大都具有圖8-7所示的時序波形。圖8-7 串行接口信號的一般時序圖圖8-8 基于串行接口控制器的電路結構圖2 I2C總線是PHILIPS公司推出的串行總線。I2C總線的應用非常廣泛,在很多器件上都配備有I2C總線接口,使用這些器件時一般都需要通過I2C總線進行控制。 I2C總線是一種具有自動尋址、高低速設備同步和仲裁等功能的高性能串行總線,能夠實現完善的全雙工數據傳輸,是各種總線中使用信號線數量最少的。 I2C總線只有兩根信號線: 數據線S
7、DA和時鐘線SCL。 圖8-9 示出了帶有兩個單片機和其他一些外圍電路模塊接入I2C總線的一個實例。圖8-9 I2C總線典型系統示意圖 各節點供電可以不同,但需共地,另外SDA和SCL需分別接上拉電阻。 I2C總線是多主機總線, I2C總線還具有仲裁功能 尋址采用純軟件的尋址方法,無需片選線的連接;尋址字節由7位從機地址(D7D1)和1位方向位(D0,0/1,讀/寫)組成。 接在I2C總線上的集成電路模塊的發送器/接收器可以根據不同的工作狀態分為主控發送器、主控接收器、被控發送器和被控接收器。而一些帶有I2C總線接口的存儲器(RAM或E2PROM)模塊只能充當被控發送器或被控接收器。 上述分析
8、表明: 不論作為主控器的單片機A向作為被控器的單片機B是發送信息還是讀取信息,被傳信息的起始和終止信號以及時鐘信號都是由作為主控器的單片機A發送的。 I2C總線為同步串行數據傳輸總線,用于單片機的外圍擴展。其總線傳輸速率為100 kb/s(改進后的規范為400 kb/s),總線驅動能力為400 pF。 圖8-10為I2C總線外圍擴展示意圖。圖8-10 I2C總線外圍擴展示意圖圖8-11 I2C總線的器件連接1) I2C總線的接口電路結構圖8-12 I2C總線信號的時序圖8-13 I2C總線的數據傳送字節格式 應答信號在第9個時鐘位上出現,接收器在SDA線上輸出低電平為應答信號(A),輸出高電平
9、為非應答信號(A)。時鐘信號以及應答和非應答信號間的關系如圖8-14所示。圖8-14 I2C總線的應答位1) 總線節點的尋址字節 主機產生起始條件后,發送的第一個字節為尋址字節。該字節的頭7位(高7位)為從機地址,最后位(LSB)決定了報文的方向: 0表示主機寫信息到從機,1表示主機讀從機中的信息。當發送了一個地址后,系統中的每個器件都將頭7位與它自己的地址比較。如果一樣,器件會應答主機的尋址,至于是從機接收器還是從機發送器由R/W位決定。 主機產生起始信號后的第一個尋址字節格式如下:D7 D0SLADA3DA2DA1DA0A2A1A0R/W 從機地址 其各位含義如下: 器件地址(DA3、DA
10、2、DA1和DA0): 是I2C總線外圍接口器件固有的地址編碼,器件出廠時,就已給定。例如,I2C總線E2PROM AT24C的器件地址為1010,4位LED驅動器SAA1064的器件地址為0111。 引腳地址(A2、A1和A0): 是由I2C總線外圍器件地址端口A2、A1和A0在電路中接電源或接地的不同而形成的地址數據。 數據方向(R/W): 規定了總線上主節點對從節點的數據傳送方向,R接收,發送。 表8-1列出了一些常用外圍器件的節點地址和尋址字節。表8-1 常用I2C接口通用器件的種類、型號和尋址字節 I2C總線傳輸數據時必須遵循規定的數據傳輸格式,圖815示出了I2C總線一次完整的數據
11、傳輸格式。圖815 I2C總線一次完整的數據傳輸格式 通常情況下,微機的CPU外部都有單獨的并行地址總線、數據總線和控制總線,而89C51單片機由于受引腳的限制,數據線和地址線是復用的,而且由口線兼用。 為了將它們分離出來,以便同單片機片外的芯片正確地連接,需要在單片機外部增加地址鎖存器,從而構成與一般CPU相類似的片外三總線,如圖825所示。 采用74HC373作鎖存器的地址總線擴展電路如圖826所示。圖825 89C51擴展的并行三總線圖826 89C51地址總線擴展電路74HC373是有輸出三態門的電平允許是有輸出三態門的電平允許8D鎖存鎖存器。當器。當G(使能端)為(使能端)為高電平高
12、電平時,鎖存器的時,鎖存器的數據輸出端數據輸出端Q的狀態與數據輸入端的狀態與數據輸入端D相同相同(透明的)。當(透明的)。當G端從高電平返回到低電平端從高電平返回到低電平時(時(下降沿后下降沿后),輸入端的數據就被鎖存),輸入端的數據就被鎖存在鎖存器中,在鎖存器中,數據輸入端數據輸入端D的變化不再影響的變化不再影響Q端輸出端輸出。 由89C51 P0口送出的低8位有效地址信號是在ALE(地址鎖存允許)信號變高的同時出現的,并在ALE由高變低時,將出現在P0口的地址信號鎖存到外部地址鎖存器74HC373中,直到下一次ALE變高時,地址才發生變化。 所謂總線,就是連接系統中各擴展部件的一組公共信號
13、線。按照功能,通常把系統總線分為3組,即地址總線、數據總線和控制總線。 89C51單片機的片外引腳可構成如圖8-25所示的并行三總線結構,所有的外圍芯片都將通過這三種總線進行擴展。 地址總線(Address Bus,AB)用于傳送單片機送出的地址信號,以便進行存儲單元和端口的選擇。 地址總線是單向的,只能由單片機向外發送信息。地址總線的數目決定了可直接訪問的存儲單元的數目。 例如,n位地址可以產生2個連續地址編碼,因此,可訪問2個存儲單元,即通常所說的尋址范圍為2個地址單元。89C51單片機存儲器擴展最多可達64 KB,即2個地址單元,因此,最多需16位地址。 數據總線(Data Bus,DB
14、)用于單片機與存儲器之間或單片機與端口之間傳送數據。 數據總線的位數與單片機處理數據的字長一致。 例如,89C51單片機是8位字長,所以,數據總線的位數也是8位。數據總線是雙向的,可以進行兩個方向的數據傳送。 控制總線(Control Bus,CB)是單片機發出的以控制片外ROM、RAM和口讀寫操作的一組控制線。1. 1. 以以P0P0口作地址數據總線口作地址數據總線 此處的地址總線是指系統的低8位地址線。 因為P0口線既用作地址線,又用作數據線(分時使用),因此,需要加一個8位鎖存器。 在實際應用時,先把低8位地址送鎖存器暫存,然后再由地址鎖存器給系統提供低8位地址,而把P0口線作為數據線使
15、用。 實際上,單片機P0口的電路設計已考慮了這種應用需要,P0口線電路中的多路轉接電路MUX以及地址數據控制即是為此目的而設計的。2. 2. 以以P2P2口的口線作高位地址線口的口線作高位地址線 如果使用P2口的全部8位口線,再加上P0口提供的低8位地址,便可形成完整的16位地址總線,使單片機系統的尋址范圍達到64 KB。 但實際應用系統中,高位地址線并不固定為8位,需要用幾位就從P2口中引出幾條口線。 除了地址線和數據線之外,在擴展系統中還需要一些控制信號線,以構成擴展系統的控制總線。這些信號有的是單片機引腳的第一功能信號,有的則是第二功能信號。其中包括: 使用ALE作為地址鎖存的選通信號,
16、以實現低8位地址的鎖存; 以信號作為擴展程序存儲器的讀選通信號; 以信號作為內、外程序存儲器的選擇信號; 以和作為擴展數據存儲器和端口的讀/寫選通信號。執行MOVX指令時,這兩個信號分別自動有效。 可以看出,盡管89C51單片機號稱有4個口,共32條口線,但由于系統擴展的需要,真正能作為數據使用的,就只剩下P1口和P3口的部分口線了。 特別需要強調的是,程序存儲器不應再采用外擴的方案。因為89系列單片機內有432 KB的不同型號產品可供選擇。如果課題需要功能更強的MCU,則可選擇ADC8、C8051F和MAX7651等SOC芯片。關于程序存儲器的擴展,本教程不作介紹。 由于89C51單片機片內
17、RAM僅有128字節,當系統需要較大容量RAM時,就需要片外擴展數據存儲器RAM,最大可擴展64 KB。 由于單片機是面向控制的,實際需要擴展容量不大,因此,一般采用靜態RAM較方便,如6116(2K8位),6264(8K8位)。 如有特殊需要,可采用62256(32K8位),628128(128K8位)等。與動態RAM相比,靜態RAM無須考慮保持數據而設置的刷新電路,故擴展電路較簡單;但由于靜態RAM是通過有源電路來保持存儲器中的數據,因此要消耗較多的功率,價格也較高。 注: 6264的26腳為高電平有效的片選端。圖827 常用靜態RAM芯片引腳圖 其引腳功能如下: A0Ai 地址輸入線,i
18、=10(6116),12(6264),14(62256)。 D0D7 雙向三態數據線; 片選信號輸入線,低電平有效,當6264的26腳(CS)為高電平,且為低電平時。才選中該片; 讀選通信號輸入線,低電平有效; 寫允許信號輸入線,低電平有效; 工作電源,電壓為 ; GND 線路地。 這3種RAM電路的主要技術特性見表85。 靜態RAM存儲器有讀出、寫入和維持3種工作方式,這些工作方式的操作控制如表86所列。 由于串行E PROM芯片引腳少(一般為8腳),系統擴展時占用MCU的I/O口線少,接口簡單,應該采用串行擴展方案組成系統。 串行E PROM芯片有很多種,如24系列和93系列等等。但這里要
19、特別推薦XICOR公司的具有E PROM、看門狗、上電復位以及電壓監控等功能的多用途芯片X5045,芯片引腳及接口電路見圖1018。 因為要建立一個可靠的系統,除需要有用數據的存儲外,看門狗和電壓監控是十分必要的,所以最好選用一個多功能的芯片。 這里包括從RAM中讀和寫兩種操作時序,但基本過程是相同的。 這時所用的控制信號有ALE和(讀)或(寫)。 P0口和P2口仍然要用,在取指階段用來傳送ROM地址和指令,而在執行階段傳送片外RAM地址和讀寫的數據。 圖829所示電路為89C51地址線直接外擴2 KB靜態RAM 6116的連線圖。 8282(同74HC373)鎖存低8位地址; 89C51的(
20、.)和(.)分別與6116寫允許端和讀允許端連接,以實現寫讀控制; 因為系統必須使用片內ROM從0000H開始的空間,所以,接高電平; 6116的片選控制端接地為常選通,地址為0000H07FFH。 對于有片內Flash ROM的89C51擴展一片RAM,便可組成一個簡單的系統。圖829 89C51擴展2 KB RAM 89C51單片機直接擴展2 KB RAM 6116,當容量不夠時,可直接外擴準靜態RAM芯片6264、62256或628128等,電路也比較簡單,無須刷新電路,線路圖同圖8-29,只是增加幾根地址線而已;但6264和628128都是雙片選信號,這一點請注意。1. 簡述單片機系統擴展的基本原則和實現方法。2. 存儲器可分為哪幾類?各有哪些特點和用途?3. 假定一個存儲器有4096個存儲單元,其首地址為0,則末地址為多少?4096=212,共需12根地址線地址范圍:0000000000000000B0000111111111111B即0000H0FFFH4. 除地線共用外,6根地址線和11根地址線各可選多少個地址?26=64B211=2048B=2KB5. 用到三片74HC373的某89C51應用系統的電路如圖830所示。現要求通過74HC373(2)輸出80H,請編寫相應的程序。圖830 89C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJG 1207-2025現場標準測速儀檢定規程
- GB/T 26148-2025高壓水射流清洗作業安全規范
- 玩具企業的品牌合作策略考核試卷
- 智能通風電器具行業標準制定與實施策略分析考核試卷
- 零售業顧客參與度提升策略考核試卷
- 裝飾材料行業品牌推廣案例分析考核試卷
- 網絡安全集成服務與風險管理考核試卷
- 氣道阻塞急救處理方法
- 青春期女孩衛生課
- 初中服裝設計課件
- ups電源維修合同范本
- 一年級下冊口算題卡大全(口算練習題50套直接打印版)
- (高清版)JTG 5421-2018 公路瀝青路面養護設計規范
- 2022-2023學年上海市徐匯區高一下學期期末考試數學試題(解析版)
- 安全環保履職述職報告
- 電大財務大數據分析編程作業4
- 2023年零售藥店醫療器械質量管理制度職責操作規程體系文件
- 4M變更管理培訓
- 新中國史智慧樹知到期末考試答案2024年
- MOOC 電磁場與波-華中科技大學 中國大學慕課答案
- MOOC 創新管理-浙江大學 中國大學慕課答案
評論
0/150
提交評論