任安虎 張燕
1.西安工業大學電子信息工程學院 710032 ;2.陜西工業職業技術學院電氣工程系 712000
基于單片機與CPLD的綜合應用設計
任安虎1張燕2
1.西安工業大學電子信息工程學院 710032 ;2.陜西工業職業技術學院電氣工程系 712000
基于單片機與CPLD設計了一個鍵值采集、顯示及與PC通信的綜合應用系統。系統硬件由單片機、CPLD及外圍電路組成,軟件采用C語言和硬件描述語言VHDL編程。可實現上行鍵值采集、顯示,并將采集到的鍵值數據通過串口送給PC;下行PC發送數據由系統接收,數碼管可以顯示接收到的數據。該系統工作可靠,在實際設計應用中有一定的參考價值。
單片機;C P L D;通信;數據;工作可靠
隨著電子、計算機技術的飛速發展,單片機與CPLD技術都得到了越來越廣泛的應用。單片微型計算機(單片機)自問世以來,因其小巧靈活、成本低、控制能力強、易于產品化等優勢,在各領域中得到廣泛的應用;但純單片機系統也有弱點:如低速、低可靠性等。可編程邏輯器件CPLD含有數量眾多的可編程邏輯宏單元或邏輯塊,能夠任意組合,可以根據需要設計成功能各異的邏輯電路;并且可采用VHDL語言編程,加速了產品的開發過程,使邏輯電路的設計變得簡單、易于實現;器件的現場可編程,大大地縮短了產品開發周期及方便更新換代;但在信息處理、邏輯分析、決策判斷等方面CPLD比不上單片機。因此,可以將單片機與CPLD器件結合,優勢互補,組成軟硬件都可靈活編程的系統,以適應不斷改變的市場需求。

圖1 系統框圖

圖2 單片機與CPLD接口電路
系統要實現采集鍵值數據、顯示,并將采集到的數據通過串口發給PC;另一方面,接收PC發過來的數據,并通過數碼管顯示接收的數據,框圖如圖1。
系統將所有的邏輯處理部分都由可編程邏輯器件CPLD實現,單片機選用了PHILIPS公司的內置ISP下載功能的64KB大容量F l a s h存儲器和特大R A M的P89C60X2;CPLD采用了ATMEL公司的ATF1508AS[1]。ATMEL公司的ATF1508AS系列CPLD是基于第二代MAX結構體系的高性能E2PROM結構的CPLD。它完全符合IEEE1149.1JTAG邊界掃描標準,具有5V ISP的功能;具有最小5nS的引腳到引腳的邏輯時延,最高175.4MHz的計數頻率;引腳可配置為開漏輸出;每個宏單元都有獨立的可編程電源控制,最多可以節省50%的功耗;宏單元內的寄存器具有單獨的時鐘和復位等信號以及支持多種電壓接口。鍵值由CPLD采集作為數據送給單片機,單片機將收到的數據一方面轉換為要顯示的數據送給CPLD經譯碼、位選之后顯示;另一方面再由單片機通過串口將數據送給上位機PC。系統通過串口可以接收由PC發來的數據,單片機將數據處理之后送給CPLD經譯碼、位選之后顯示接收的數據。
2.1 單片機與CPLD接口電路
數據的處理及與PC的通信由單片機完成,邏輯電路部分由CPLD實現包括鍵值采集和譯碼顯示。具體電路如圖2所示[2]。
C P L D采集的鍵值數據通過keyout0~keyout7送給單片機的A8~A15輸入;要顯示的數據由單片機的AD0~AD3送給CPLD的a0~a3,位選信號由單片機的AD4輸出送給W4IN,經CPLD譯碼之后顯示。

圖3 串行通信接口電路

圖4 按鍵及LED顯示電路

圖5 單片機程序流程圖
2.2 串行通信接口
串行通信接口是實現系統與上位機PC通信的通道。RS-232接口是標準總線協議。其總線傳輸的最大有效距離為15m,最高傳輸速率約20kbit/s,信號的邏輯0電平為+3~+15 V,邏輯1電平為-3~-15 V。選擇了MAX202芯片,它能將RS-232電平轉換成TTL電平,也能將TTL電平轉換成RS-232C電平。只需單+5 V供電,由內部電平升高電路產生±12V[3]。電路如圖3所示。
2.3 按鍵及LED電路
按鍵及LED顯示電路如圖4所示。
依照電路按鍵是低有效,當有按鍵按下時對應的位為低,否則為高;數碼管顯示電路一共有四個數碼管,根據顯示的需要由位選決定哪個數碼管顯示。
系統的軟件包括單片機的軟件和可編程邏輯器件CPLD的程序。單片機程序用C語言編程,CPLD程序用VHDL語言編寫[4]。
3.1 單片機程序設計
單片機主要實現數據處理及與上位機PC通信的任務。具體的程序圖如圖5所示。
3.2 CPLD程序設計
CPLD主要實現鍵值的采集和將單片機送來的顯示數據經譯碼進行顯示[5],程序實現如下所示。


本系統利用單片機與CPLD實現了鍵值采集及顯示,并將數據通過串口發向上位機PC;也可接收從上位機送來的數據并顯示接收的數據。在設計中充分考慮了單片機與CPLD的互補性。通過實驗證實系統工作穩定,在實際的應用中具有很好的參考價值。
[1]畢立恒,劉玉賓. 一種實用單片機和 CPLD最小應用系統的設計[J].自動化技術與應用.2009,28(8):111-113
[2]周立功,夏宇聞.單片機與CPLD綜合應用技術[M].北京:北京航空航天大學出版社.2004.
[3] 彭 穎. 基于單片機和CPLD器件的綜合系統設計[J]. 電工電氣.2009,(5):39-41.
[4]俞寧,朱祥賢,秦曉芳. 基于VHDL語言的MCU與CPLD的接口設計[J].科技創新導報.2009,(25):25-26
[5]田開坤,徐海霞. 基于CPLD的單片機接口設計[J]. 現代電子技術.2008(2):34-36
TP332
A
10.3969/j.issn.1001-8972.2010.13.050