基于單片機與CPLD的無(wú)線(xiàn)控制系統
3 系統硬件連接組成以及工作過(guò)程
使用CPLD代替單片機的外圍接口芯片,與AVR單片機構成的控制系統相連如圖2所示。系統的主要部分僅需要2片集成電路,AVR單片機系列AT―megal62和XC2C256。單片機與CPLD之間的接口是通過(guò)單片機的地址/數據復用總線(xiàn)(PORTA端口)以及讀寫(xiě)控制I/O口(WR,RD,ALE)與CPLD的I/O口相連來(lái)進(jìn)行數據、狀態(tài)的傳輸。
在單片機中對擴展的I/O端口進(jìn)行統一編址,通過(guò)C語(yǔ)言可以方便地訪(fǎng)問(wèn)I/O端口,單片機要往數據端口或控制端口輸出信息,必須先把地址送到地址總線(xiàn)上,將確定的控制信息送到控制總線(xiàn)上,再把數據信息送到數據總線(xiàn)上。經(jīng)過(guò)CPLD的內部邏輯進(jìn)行地址、數據鎖存,并譯碼以獲得擴展的端口號,從而獲得對各個(gè)外部功能子模塊的控制信號,端口號COM1,COM2,COM3。COM4,COM5,COM6,COM7分別是無(wú)線(xiàn)模塊控制、時(shí)間統一控制、數據采集控制、電源管理控制、片選選擇控制、狀態(tài)選擇以及可擴展模塊控制等的控制端口,而且通過(guò)控制片選端口號(COM5端口),可以對各個(gè)功能子模塊進(jìn)行SPI串行數據的傳輸,從而達到對SPI串行標準接口的擴展。本文引用地址:http://dyxdggzs.com/article/163852.htm
通過(guò)選擇不同的I/O端口可以控制讀取、寫(xiě)入各外圍處理模塊的數據。要讀取某一外圍處理模塊的數據,必須先讀取狀態(tài)選擇端口COM6的狀態(tài)信息,狀態(tài)選擇RDY(數據準備好)就緒時(shí),通過(guò)向此處理模塊控制端口COM寫(xiě)入控制信息來(lái)控制子模塊的工作模式,再通過(guò)寫(xiě)片選端口COM5來(lái)選擇子模塊,從而啟動(dòng)SPI實(shí)現讀取子模塊的數據。與此對應,寫(xiě)入數據也需要讀取狀態(tài)信息,再控制某一子模塊的工作模式,選擇片選信號,啟動(dòng)SPI寫(xiě),就可以實(shí)現寫(xiě)入數據的功能。
4 CPLD軟件設計
采用Xilinx公司的CPLD開(kāi)發(fā)軟件Xilinx ISE完成系統的軟件設計,Xilinx ISE支持原理圖輸入、HDL語(yǔ)言輸入、狀態(tài)圖輸入和混合輸入等輸入方法。其中HDL語(yǔ)言中的VHDL硬件描述語(yǔ)言,與具體的工藝技術(shù)和器件無(wú)關(guān),易于共享和復用,具有多層次描述系統硬件功能的能力。
在設計中,CPLD需要實(shí)現的功能為地址譯碼端口以及控制不同端口的電路設計,用VHDL語(yǔ)言對進(jìn)行編程編譯,然后采用元件例化的方法得到電路結構如圖3所示。
CPLD中所設計的程序片斷:
評論