摘 要:介紹了SPI與I2C總線協議的特點及其在MCS—51單片機系列中模擬實現的方法。對構造單片機系統的整體方案的方法進行了研究,討論了方案的可行性。具體的實現方法是使用Protel 99SE繪制原理圖,再在試驗板上來搭建電路,最后用匯編語言編寫驅動程序。通過實際調試,可以成功實現系統最小化。
關鍵詞:AT89C51;三線方式;串行接口;I2C
中圖分類號:TP36 文獻標識碼: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總線接口芯片為完成單片機的常規外圍電路擴展設計帶來了機遇,可擴展的外圍電路包括A/D與D/A轉換器、顯示、時鐘、存儲器、監視復位、I/O、顯示等。本文利用國內目前較為流行的I2C,SPI串行通信協議實現單片機外圍電路的A/D轉換、 D/A轉換、時鐘、I/O擴展、E2PROM以及LED驅動器件的擴展功能,實現了單片機系統功能模塊化,電路集成化的目的。
1 SPI集成接口芯片功能及應用
1.1 A/D轉換器
單片機應用系統中典型的應用模式是通過傳感器采集現場的微弱信號參數,經過濾波放大處理后再通過A/D模數轉換送至單片機系統實現各種工業調節和控制,在此過程中A/D轉換電路的設計尤其重要。早期的A/D轉換器與CPU接口一般采用并行總線方式,新型A/D轉換器采用I2C,SPI總線方式可節省CPU的I/O資源,使產品小型化。本文中選用的A/D轉換器為SPI串行總線接口的10位模數轉換器TLC1549。
1.2 D/A轉換器
D/A轉換器的種類繁多,從接口形式而言,有串口和并口之分。目前新型的D/A轉換器大都采用了串行總線協議。D/A芯片的輸出形式有電流型和電壓型兩種,由于電流輸出形式在實際電路中必須將輸出轉換成電壓輸出。為了簡化電路和提高可靠性,本文選用電壓型的SPI串行總線接口TLC5615 D/A轉換器。
1.3 驅動顯示器接口芯片
目前廣泛使用的顯示器件主要有LED(二極管顯示管)、LCD(液晶顯示器)和VFD(真空熒光管)等。LCD和VFD顯示器顯示成本較高,而LED顯示器造價低廉,與單片機接口方便靈活,技術上易于實現,通常用于顯示阿拉伯數字和少數字符。本文選用LED作為顯示器件。串行總線方式的LED顯示器接口芯片與并行方式相比,僅占有CPU的少數幾根I/O口線便可實現LED功能,因此本設計中采用了SPI串行接口顯示驅動芯片MAX7219。
1.4 看門狗芯片X5045
單片機應用系統(或產品)在運行中會受到各種各樣的干擾,導致系統內部數據出錯或嚴重影響程序的運行。因此,單片機應用系統的開發要考慮系統的可靠性設計。“看門狗”是系統可靠性設計中的重要一環。所謂“看門狗”是指在單片機程序設計中采用的一種程序監視技術,當單片機受到干擾失控導致程序跑飛或陷入死循環時,通過采取一定的軟硬件措施使程序脫離死循環或重新運行。本文中選用多功能芯片X5045。
1.5 I/O擴展芯片PCF8574
目前,在單片機應用系統的外圍串行擴展接口器件中,除了上述SPI總線以外,還有I2C總線。I2C總線提供了較完善的總線協議和最簡單的串行連接方式,并提供了總線操作的狀態處理軟件包。本文在設計中加入常用的I2C總線的I/O擴展片PCF8574,用他來增加單片機的I/O口,提高單片機的外掛器件的能力。PCF8574具有低的電流損耗并有輸出鎖存功能,能輸出大電流,可直接驅動LED發光管。
2 硬件設計
本次設計所有的接口芯片均采用串行方式,串行方式通信有單線、兩線、三線等多種方式,其中以兩線、三線最為流行。在本次設計中,主要采用三線方式,即SPI(Serial Peripheral Interface,串行接口)。設計中所用的接口器件包括A/D轉換器、D/A轉換器、實時時鐘、存儲器、看門狗、I/O、LED顯示器。在本次設計中采用的是51系列的單片機作為主CPU,而他不具有SPI接口系統,故不可直接與各個廠家生產的多種標準的SPI外圍器件直接接口。為了解決這一難題,在本設計中使用軟件來模擬SPI系統中的4條線:串行時鐘總線SCK、主機輸入/從機輸出數據線MOSO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線/CS。用P2.1模擬CPU的數據輸出端(MOSI),P2.0模擬CPU的數據輸入端(MOSO),P2.2 模擬CPU的SCK輸出端。外圍接口芯片公用這三條控制線,但在這種方式下,每次只能驅動執行一片芯片。鑒于SPI與I2C總線電路設計、時序和程序設計的不同,又在本次設計中加入了一片I2C總線接口的I/O擴展芯片,用P1.0來模擬SDA,用P1.1來模擬SCL,以便了解兩者的截然不同之處。硬件框圖如圖1所示。
圖1 硬件框圖
3 軟件設計
用PCF8574來擴展I/O端口,低四位為燈,高四位為
小開關,通過中斷的方法讀入I/O的狀態。經過取高四位,打到低四位,以點亮或熄滅相應的指示燈。整個系統在工作中,只要按下任意一個鍵都將使PCF8574產生中斷申請信號,使CPU響應中斷,執行中斷服務程序。在中斷服務程序中,CPU根據按鍵的狀態控制程序轉移。按下鍵1,調用A/D轉換子程序;按下鍵2,調用顯示子程序;按下鍵3,調用D/A轉換子程序,用示波器觀察其輸出波形;按下鍵4,調用看門狗芯片X5045的工作子程序,進行單字節的寫、讀。軟件總體流程框圖見圖2。
圖2 軟件總體流程圖
4 結 語
目前,單片機應用系統的外圍擴展已從并行方式為主過渡到以串行方式為主的時代。許多新型外圍器件都帶有UART的移位寄存器方式,MOTOROLA公司的SPI、NS公司的Microwire、Dallas公司的1—wire和Philips公司的I2C總線等,他們都提供了較完善的總線協議,連接方式簡單,在擴展外圍器件設計中得到廣泛的應用。本文通過在設計中使用MCS—51的I/O口來模擬總線接口,實現了單片機與串行總線接口器件的數據傳輸,該方案已通過調試,整個單片機系統運行良好。試驗表明MCS—51的I/O口來模擬總線接口的方法在設計中可行有效。
參考文獻
[1]何立民.I2C總線應用系統設計[M].北京:北京航空航天大學出版社,1995.
[2]馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,1996.
[3]何立民.單片機應用技術選編[M].北京:北京航空航天大學出版社,2000.
[4]譚浩強.C語言程序設計教程[M].北京:高等教育出版社,2000.
[5]祝貞鳳,張躍武.TMS320F206外圍電路典型設計[J].現代電子技術,2007,30(11):44—45,48.
作者簡介 曹俊俠 女,1969年出生,陜西大荔人,講師,工學學士。主要從事電子技術基礎及其應用技術的教學及教學管理。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。