摘 要:介紹了SPI與I2C總線協(xié)議的特點及其在MCS—51單片機系列中模擬實現(xiàn)的方法。對構(gòu)造單片機系統(tǒng)的整體方案的方法進(jìn)行了研究,討論了方案的可行性。具體的實現(xiàn)方法是使用Protel 99SE繪制原理圖,再在試驗板上來搭建電路,最后用匯編語言編寫驅(qū)動程序。通過實際調(diào)試,可以成功實現(xiàn)系統(tǒng)最小化。
關(guān)鍵詞:AT89C51;三線方式;串行接口;I2C
中圖分類號:TP36 文獻(xiàn)標(biāo)識碼:B
文章編號:1004373X(2008)0310902
Three—line Structure Design for Single Chip Series Periphery Interface Circuit
CAO Junxia1,YUAN Tonglu2
(1.Shaanxi Energy Professional and Technological Institute,Xianyang,712000,China;
2.College of Computer Science,Xi′an Shiyou University,Xi′an,710065,China)
Abstract:The paper introduces characteristics of SPI and I2C general bus protocol and its realization in MCS—51,researches scheme of single chip system,discusses its feasibility.The concrete way of realization is using Protel—99 SE to draw the schematic diagram,build the electric circuit in the experimental board with the assembly language compilation driver.To the process debugging,has realized minimum of that the system successfully.
Keywords:AT89C51;three—line control method;serial interface; I2C
SPI總線接口芯片為完成單片機的常規(guī)外圍電路擴展設(shè)計帶來了機遇,可擴展的外圍電路包括A/D與D/A轉(zhuǎn)換器、顯示、時鐘、存儲器、監(jiān)視復(fù)位、I/O、顯示等。本文利用國內(nèi)目前較為流行的I2C,SPI串行通信協(xié)議實現(xiàn)單片機外圍電路的A/D轉(zhuǎn)換、 D/A轉(zhuǎn)換、時鐘、I/O擴展、E2PROM以及LED驅(qū)動器件的擴展功能,實現(xiàn)了單片機系統(tǒng)功能模塊化,電路集成化的目的。
1 SPI集成接口芯片功能及應(yīng)用
1.1 A/D轉(zhuǎn)換器
單片機應(yīng)用系統(tǒng)中典型的應(yīng)用模式是通過傳感器采集現(xiàn)場的微弱信號參數(shù),經(jīng)過濾波放大處理后再通過A/D模數(shù)轉(zhuǎn)換送至單片機系統(tǒng)實現(xiàn)各種工業(yè)調(diào)節(jié)和控制,在此過程中A/D轉(zhuǎn)換電路的設(shè)計尤其重要。早期的A/D轉(zhuǎn)換器與CPU接口一般采用并行總線方式,新型A/D轉(zhuǎn)換器采用I2C,SPI總線方式可節(jié)省CPU的I/O資源,使產(chǎn)品小型化。本文中選用的A/D轉(zhuǎn)換器為SPI串行總線接口的10位模數(shù)轉(zhuǎn)換器TLC1549。
1.2 D/A轉(zhuǎn)換器
D/A轉(zhuǎn)換器的種類繁多,從接口形式而言,有串口和并口之分。目前新型的D/A轉(zhuǎn)換器大都采用了串行總線協(xié)議。D/A芯片的輸出形式有電流型和電壓型兩種,由于電流輸出形式在實際電路中必須將輸出轉(zhuǎn)換成電壓輸出。為了簡化電路和提高可靠性,本文選用電壓型的SPI串行總線接口TLC5615 D/A轉(zhuǎn)換器。
1.3 驅(qū)動顯示器接口芯片
目前廣泛使用的顯示器件主要有LED(二極管顯示管)、LCD(液晶顯示器)和VFD(真空熒光管)等。LCD和VFD顯示器顯示成本較高,而LED顯示器造價低廉,與單片機接口方便靈活,技術(shù)上易于實現(xiàn),通常用于顯示阿拉伯?dāng)?shù)字和少數(shù)字符。本文選用LED作為顯示器件。串行總線方式的LED顯示器接口芯片與并行方式相比,僅占有CPU的少數(shù)幾根I/O口線便可實現(xiàn)LED功能,因此本設(shè)計中采用了SPI串行接口顯示驅(qū)動芯片MAX7219。
1.4 看門狗芯片X5045
單片機應(yīng)用系統(tǒng)(或產(chǎn)品)在運行中會受到各種各樣的干擾,導(dǎo)致系統(tǒng)內(nèi)部數(shù)據(jù)出錯或嚴(yán)重影響程序的運行。因此,單片機應(yīng)用系統(tǒng)的開發(fā)要考慮系統(tǒng)的可靠性設(shè)計。“看門狗”是系統(tǒng)可靠性設(shè)計中的重要一環(huán)。所謂“看門狗”是指在單片機程序設(shè)計中采用的一種程序監(jiān)視技術(shù),當(dāng)單片機受到干擾失控導(dǎo)致程序跑飛或陷入死循環(huán)時,通過采取一定的軟硬件措施使程序脫離死循環(huán)或重新運行。本文中選用多功能芯片X5045。
1.5 I/O擴展芯片PCF8574
目前,在單片機應(yīng)用系統(tǒng)的外圍串行擴展接口器件中,除了上述SPI總線以外,還有I2C總線。I2C總線提供了較完善的總線協(xié)議和最簡單的串行連接方式,并提供了總線操作的狀態(tài)處理軟件包。本文在設(shè)計中加入常用的I2C總線的I/O擴展片PCF8574,用他來增加單片機的I/O口,提高單片機的外掛器件的能力。PCF8574具有低的電流損耗并有輸出鎖存功能,能輸出大電流,可直接驅(qū)動LED發(fā)光管。
2 硬件設(shè)計
本次設(shè)計所有的接口芯片均采用串行方式,串行方式通信有單線、兩線、三線等多種方式,其中以兩線、三線最為流行。在本次設(shè)計中,主要采用三線方式,即SPI(Serial Peripheral Interface,串行接口)。設(shè)計中所用的接口器件包括A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、實時時鐘、存儲器、看門狗、I/O、LED顯示器。在本次設(shè)計中采用的是51系列的單片機作為主CPU,而他不具有SPI接口系統(tǒng),故不可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)的SPI外圍器件直接接口。為了解決這一難題,在本設(shè)計中使用軟件來模擬SPI系統(tǒng)中的4條線:串行時鐘總線SCK、主機輸入/從機輸出數(shù)據(jù)線MOSO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線/CS。用P2.1模擬CPU的數(shù)據(jù)輸出端(MOSI),P2.0模擬CPU的數(shù)據(jù)輸入端(MOSO),P2.2 模擬CPU的SCK輸出端。外圍接口芯片公用這三條控制線,但在這種方式下,每次只能驅(qū)動執(zhí)行一片芯片。鑒于SPI與I2C總線電路設(shè)計、時序和程序設(shè)計的不同,又在本次設(shè)計中加入了一片I2C總線接口的I/O擴展芯片,用P1.0來模擬SDA,用P1.1來模擬SCL,以便了解兩者的截然不同之處。硬件框圖如圖1所示。
圖1 硬件框圖
3 軟件設(shè)計
用PCF8574來擴展I/O端口,低四位為燈,高四位為
小開關(guān),通過中斷的方法讀入I/O的狀態(tài)。經(jīng)過取高四位,打到低四位,以點亮或熄滅相應(yīng)的指示燈。整個系統(tǒng)在工作中,只要按下任意一個鍵都將使PCF8574產(chǎn)生中斷申請信號,使CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中,CPU根據(jù)按鍵的狀態(tài)控制程序轉(zhuǎn)移。按下鍵1,調(diào)用A/D轉(zhuǎn)換子程序;按下鍵2,調(diào)用顯示子程序;按下鍵3,調(diào)用D/A轉(zhuǎn)換子程序,用示波器觀察其輸出波形;按下鍵4,調(diào)用看門狗芯片X5045的工作子程序,進(jìn)行單字節(jié)的寫、讀。軟件總體流程框圖見圖2。
圖2 軟件總體流程圖
4 結(jié) 語
目前,單片機應(yīng)用系統(tǒng)的外圍擴展已從并行方式為主過渡到以串行方式為主的時代。許多新型外圍器件都帶有UART的移位寄存器方式,MOTOROLA公司的SPI、NS公司的Microwire、Dallas公司的1—wire和Philips公司的I2C總線等,他們都提供了較完善的總線協(xié)議,連接方式簡單,在擴展外圍器件設(shè)計中得到廣泛的應(yīng)用。本文通過在設(shè)計中使用MCS—51的I/O口來模擬總線接口,實現(xiàn)了單片機與串行總線接口器件的數(shù)據(jù)傳輸,該方案已通過調(diào)試,整個單片機系統(tǒng)運行良好。試驗表明MCS—51的I/O口來模擬總線接口的方法在設(shè)計中可行有效。
參考文獻(xiàn)
[1]何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995.
[2]馬忠梅,籍順心,張凱,等.單片機的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,1996.
[3]何立民.單片機應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,2000.
[4]譚浩強.C語言程序設(shè)計教程[M].北京:高等教育出版社,2000.
[5]祝貞鳳,張躍武.TMS320F206外圍電路典型設(shè)計[J].現(xiàn)代電子技術(shù),2007,30(11):44—45,48.
作者簡介 曹俊俠 女,1969年出生,陜西大荔人,講師,工學(xué)學(xué)士。主要從事電子技術(shù)基礎(chǔ)及其應(yīng)用技術(shù)的教學(xué)及教學(xué)管理。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。