1SPI集成接口芯片功能及應用
1.1A/D轉換器
單片機應用系統中典型的應用模式是通過傳感器采集現場的微弱信號參數,經過濾波放大處理后再通過A/D模數轉換送至單片機系統實現各種工業調節和控制,在此過程中A/D轉換電路的設計尤其重要。早期的A/D轉換器與CPU接口一般采用并行總線方式,新型A/D轉換器采用I2C,SPI總線方式可節省CPU的I/O資源,使產品小型化。本文中選用的A/D轉換器為SPI串行總線接口的10位模數轉換器TLC1549。
1.2D/A轉換器
D/A轉換器的種類繁多,從接口形式而言,有串口和并口之分。目前新型的D/A轉換器大都采用了串行總線協議。D/A芯片的輸出形式有電流型和電壓型兩種,由于電流輸出形式在實際電路中必須將輸出轉換成電壓輸出。為了簡化電路和提高可靠性,本文選用電壓型的SPI串行總線接口TLC5615D/A轉換器。
1.3驅動顯示器接口芯片
目前廣泛使用的顯示器件主要有LED(二極管顯示管)、LCD(液晶顯示器)和VFD(真空熒光管)等。LCD和VFD顯示器顯示成本較高,而LED顯示器造價低廉,與單片機接口方便靈活,技術上易于實現,通常用于顯示阿拉伯數字和少數字符。本文選用LED作為顯示器件。串行總線方式的LED顯示器接口芯片與并行方式相比,僅占有CPU的少數幾根I/O口線便可實現LED功能,因此本設計中采用了SPI串行接口顯示驅動芯片MAX7219。
1.4看門狗芯片X5045
單片機應用系統(或產品)在運行中會受到各種各樣的干擾,導致系統內部數據出錯或嚴重影響程序的運行。因此,單片機應用系統的開發要考慮系統的可靠性設計。“看門狗”是系統可靠性設計中的重要一環。所謂“看門狗”是指在單片機程序設計中采用的一種程序監視技術,當單片機受到干擾失控導致程序跑飛或陷入死循環時,通過采取一定的軟硬件措施使程序脫離死循環或重新運行。本文中選用多功能芯片X5045。
1.5I/O擴展芯片PCF8574
目前,在單片機應用系統的外圍串行擴展接口器件中,除了上述SPI總線以外,還有I2C總線。I2C總線提供了較完善的總線協議和最簡單的串行連接方式,并提供了總線操作的狀態處理軟件包。本文在設計中加入常用的I2C總線的I/O擴展片PCF8574,用他來增加單片機的I/O口,提高單片機的外掛器件的能力。PCF8574具有低的電流損耗并有輸出鎖存功能,能輸出大電流,可直接驅動LED發光管。
2硬件設計
本次設計所有的接口芯片均采用串行方式,串行方式通信有單線、兩線、三線等多種方式,其中以兩線、三線最為流行。在本次設計中,主要采用三線方式,即SPI(SerialPeripheralInterface,串行接口)。設計中所用的接口器件包括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所示。
3軟件設計
用PCF8574來擴展I/O端口,低四位為燈,高四位為小開關,通過中斷的方法讀入I/O的狀態。經過取高四位,打到低四位,以點亮或熄滅相應的指示燈。整個系統在工作中,只要按下任意一個鍵都將使PCF8574產生中斷申請信號,使CPU響應中斷,執行中斷服務程序。在中斷服務程序中,CPU根據按鍵的狀態控制程序轉移。按下鍵1,調用A/D轉換子程序;按下鍵2,調用顯示子程序;按下鍵3,調用D/A轉換子程序,用示波器觀察其輸出波形;按下鍵4,調用看門狗芯片X5045的工作子程序,進行單字節的寫、讀。軟件總體流程框圖見圖2。
4結語
目前,單片機應用系統的外圍擴展已從并行方式為主過渡到以串行方式為主的時代。許多新型外圍器件都帶有UART的移位寄存器方式,MOTOROLA公司的SPI、NS公司的Microwire、Dallas公司的1-wire和Philips公司的I2C總線等,他們都提供了較完善的總線協議,連接方式簡單,在擴展外圍器件設計中得到廣泛的應用。本文通過在設計中使用MCS-51的I/O口來模擬總線接口,實現了單片機與串行總線接口器件的數據傳輸,該方案已通過調試,整個單片機系統運行良好。試驗表明MCS-51的I/O口來模擬總線接口的方法在設計中可行有效。