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