基于CPLD的電子秤邏輯接口設計
現代電子儀器系統的多功能化、智能化程度不斷增加,并且隨著(zhù)實(shí)際應用場(chǎng)合的改變,隨時(shí)都有可能要求對系統功能進(jìn)行升級,因此在硬件設計上越來(lái)越要依靠EDA輔助設計手段。本文主要討論了基于CPLD的電子秤邏輯控制電路設計,重點(diǎn)介紹CPU地址空間擴展問(wèn)題,解決了熱敏打印機驅動(dòng)設計及其他接口設計問(wèn)題。
1 系統組成及設計指標
本文所設計的電子秤系統包括主控單元、存儲器、鍵盤(pán)顯示、檢測與轉換、數據傳輸與通信、打印以及系統時(shí)鐘等硬件模塊,圖1所示為系統組成框圖。由于采用了CPU和CPLD協(xié)同控制的設計方案,硬件模塊間的關(guān)聯(lián)性高,電路元器件數量少,對系統EMC有明顯改善,更為重要的是符合嵌入式軟件的設計理念,對系統實(shí)時(shí)操作系統的移植、管理大有裨益。它除了計量、打印等一般功能外,還具備良好的用戶(hù)/客戶(hù)LCD中文圖形人機接口界面、以太網(wǎng)遠程控制與數據傳輸、C-S無(wú)線(xiàn)數據傳輸等功能,操作簡(jiǎn)單直觀(guān),擴展、升級更新迅速方便,在不改變控制系統的前提下,更改CPU方案也很方便,如改成DSP/ARM方案。
系統功能與設計指標為:最小稱(chēng)重5g;2MB Flash存儲器,128KB帶電電池保護RAM;128×64點(diǎn)陣LCD顯示界面,100鍵鍵盤(pán),46位客戶(hù)LED;10MHz以太網(wǎng)通信接口;905MHz智能信道掃描無(wú)線(xiàn)通信接口;精工高速熱敏打印機等。
2 主控單元
主控單元的功能是控制整個(gè)電子秤系統的運行狀態(tài)、協(xié)調各個(gè)功能模塊的關(guān)系以及處理過(guò)程信息等,主要包括改進(jìn)型51核單片機和CPLD兩部分。
采用單片機作為主控CPU主要是從產(chǎn)品成本考慮的。很多新型MSC51核單片機不但軟件、硬件與傳統的MCS51系列單片機完全兼容,并且在速度、抗干擾性能、穩定性以及性?xún)r(jià)比等方面較后者具有明顯優(yōu)勢。圖2中CPU采用SST89E58,它與8位標準51系列單片機完全兼容,工作頻率0~40MHz,工作電壓范圍2.7V~5.5V,其Super Flash存儲結構等先進(jìn)特性可以為用戶(hù)提供極高的可靠性和極低的成本。該單片機與CPLD結合,可以建立功能強大的商用電子秤操作、控制平臺。
商用電子秤的性能要求決定了硬件設計的復雜性。本文用CPLD搭建了可重構數字平臺作為邏輯控制部件,所有時(shí)序控制、地址分配全部交給CPLD完成,用來(lái)代替傳統的低密度AISC器件,充分發(fā)揮CPLD的優(yōu)勢,使CPU對外接器件近似透明,從而可以專(zhuān)注于過(guò)程信息的處理,不過(guò)多參與硬件控制。圖2中CPLD采用1片Altera公司MAX7000系列CPLD EPM7256AET144-7,該芯片有144個(gè)引腳,能夠解決包括存儲器訪(fǎng)問(wèn)、鍵盤(pán)掃描、顯示等功能模塊的控制和驅動(dòng)問(wèn)題,用單片器件實(shí)現了CPU與所有外圍設備的邏輯接口,使得整個(gè)操作控制系統的主板面積大為縮減,整體性能穩定性大為提高。在CPLD中實(shí)現的功能模塊有:地址譯碼、打印機驅動(dòng)、PWM調制轉換等部分。為提高開(kāi)發(fā)效率,減少調試中的不可預測問(wèn)題,采用分級、分步驟設計方法,設計一部分,調試一部分。
3 接口邏輯與地址分配
商用電子秤的應用環(huán)境決定了它所需要的外擴端口資源多、存儲器容量較大,因此在邏輯設計中,地址分配與管理問(wèn)題就顯得特別重要。
首先,由于單片機64KB的尋址范圍無(wú)法覆蓋2MB存儲空間,本文采用了分塊-分頁(yè)的方法管理存儲器:將P1與P2/P0口一起作為地址線(xiàn)使用,使總的地址線(xiàn)達到24條,CPU的有效尋址空間高達16MB單元。同時(shí),這16MB空間被進(jìn)一步平均劃分成8個(gè)塊,每塊分32頁(yè),每頁(yè)64KB。其中P1.5-P1.7線(xiàn)作為塊尋址線(xiàn),分別供Flash、RAM、I/O口使用;P1.0-1.4線(xiàn)作為頁(yè)尋址線(xiàn),剛好生成32個(gè)有效頁(yè)地址;P2/P0作為單片機默認的地址總線(xiàn),用來(lái)尋址每頁(yè)內連續的64KB存儲單元。尋址實(shí)現方法:每尋址一個(gè)單元,單片機分兩次送出地址號,第1次從P1口送出塊/頁(yè)地址號,第2次從P2/P0口送出頁(yè)內地址號。塊地址不能直接送給目標器件,而是經(jīng)過(guò)CPLD譯碼后送給對應器件,如圖3所示。顯然,P0口仍舊復用為數據總線(xiàn)和低8位地址總線(xiàn),P0口數據經(jīng)過(guò)CPLD鎖存后作為低8位地址給存儲器使用,而P0口直接引出的數據線(xiàn)并接到所有器件的數據線(xiàn)上。CPU工作于40MHz時(shí)鐘頻率,中和每次尋址送兩次地址對速度帶來(lái)的影響。
其次,由于單片機的P1口已被擴展為地址線(xiàn),而P3口又只能用其第二功能,故已再無(wú)其他端口線(xiàn)可以用作通用I/O控制線(xiàn)。為此,本文采用I/O口統一尋址方式,除了存儲器以外的器件全部安排在I/O尋址空間,所有數據(包括串行通信中的串-并轉換結果)都經(jīng)過(guò)CPLD緩存之后再送入CPU中,所有存儲器及外部I/O端口統一分配地址:第1塊A00000H~BFFFFH地址分配給FLASH使用,第2塊C00000H~C1FFFFH地址分配給RAM使用,第3塊分配給其他并接在I/O總線(xiàn)上的所有端口使用。存儲器組織結構如圖4所示。
4 打印機驅動(dòng)設計
打印機是商用電子秤不可或缺的部件之一。熱敏打印的原理是在控制邏輯的驅動(dòng)下,通過(guò)控制打印頭上排成方陣或條形式的微型發(fā)熱器加熱熱敏紙使之產(chǎn)生一個(gè)與加熱元素相同的圖元,同時(shí)還控制進(jìn)紙,以便印出整個(gè)圖形(如銷(xiāo)售商品條形碼)。本文選用精工熱敏打印機LTP1245,每一行384個(gè)加熱點(diǎn),最寬打印48mm寬帶紙,打印加熱電壓范圍4.2~8.5V,電源設計方便。為了減少打印電流,將每行分成六段,每段64點(diǎn),分六次打印,其工作時(shí)序見(jiàn)圖5。CLK是移位時(shí)鐘信號,DAT是打印位數據,LATCH是數據鎖存信號,DST是段控制信號。
打印數據在CLK時(shí)鐘控制下從串行數據線(xiàn)DAT腳逐位輸入打印機內,而后在LATCH鎖存信號控制下保存在打印存儲器中。數據全部鎖存到數據存儲器之后,在DST1-DST6信號的控制下分6次加熱打印。當某路DST信號有效時(shí),對應段被加熱打印。384個(gè)數據位恰好對應384個(gè)加熱點(diǎn),當該位為0時(shí)不加熱,打印紙上對應位置顯白色,反之紙顯黑色。打印加熱時(shí)間由DST的持續時(shí)間控制,持續時(shí)間可以控制打印圖形對比深度。根據圖5中時(shí)序,結合上述設計思想,在CPLD中抽象出功能圖如圖6,Buffer1緩存步進(jìn)電機驅動(dòng)信號,驅動(dòng)打印頭四相精密步進(jìn)電機,Buffer2緩沖打印頭過(guò)熱和缺紙傳感信息。Buffer1的數據從P0口寫(xiě)入,Buffer2的數據被P0口讀入。DECODER是譯碼器,譯出6位打印機段加熱控制信號,COUNTER實(shí)際上是串并轉換器,將并行打印數據轉換成串行數據以及移位時(shí)鐘和鎖存信號。
5 仿真驗證
首先,使用硬件描述語(yǔ)言將每個(gè)獨立的單元模塊抽象出硬件實(shí)體,在EDA工具軟件中調試通過(guò)并生成符號模型,然后再生成包含地址分配模塊和接口部件的頂層文件,仿真出波形,完成整個(gè)設計。
圖7為將CPU輸入的并行數據轉換成串行數據的打印機數據并-串轉換仿真波形圖,在圖5的時(shí)序驅動(dòng)下將串行數據輸入到打印機。在MAXPLUS II中選定CPLD器件,對這一部分電路做timing analyzer分析,得到理論移位時(shí)鐘的最高頻率可以達到111MHz。這一結果的重要意義在于:假設一個(gè)并行數據需經(jīng)過(guò)8個(gè)時(shí)鐘后被移入打印機中,當CPU工作在40MHz時(shí),若其發(fā)送一個(gè)并行數據到CPLD需要4個(gè)指令周期,每個(gè)指令周期需用12個(gè)機器周期,則CPU每發(fā)送一個(gè)并行數據的無(wú)間隔時(shí)間大約為(1/40)×4×2即1.2μs??梢?jiàn),只要CPLD的并-串轉換模塊移位時(shí)間小于1.2μs即工作頻率大于0.83MHz,即可實(shí)現單片機與打印機之間的零等待時(shí)間數據傳輸,這對于提高打印機打印速度非常有幫助。圖5顯示了將一個(gè)并行數據2移位的例子,最低位(LSB)最先從右邊移出。
圖8是PWM調制轉換仿真驗證波形圖。PWM(Pulse Wide Moudulation)脈寬調制電路,實(shí)現將模擬信號轉換成數字信號,是一種低成本高性能A/D采樣方法。圖中data_cnt計數器在data_en高電平信號作用下開(kāi)始對clk脈沖計數,當data_en為低電平時(shí)停止計數,如果此時(shí)剛好rd也為低電平,則data_cnt被讀出do數據線(xiàn)。很顯然,這實(shí)際上是對data_en脈沖寬度計數。需要說(shuō)明的一點(diǎn)是data_cnt為16位計數器,而CPU是8位,CPU在s控制信號的作用下分兩次讀出data_cnt數值。
本文論述了基于單片機和CPLD協(xié)同控制的商用電子秤設計方案,從應用角度著(zhù)重研究了典型單片機應用系統中以CPLD作為邏輯控制部件的設計理念和實(shí)現方法,仿真驗證了設計的正確性。其中面向存儲器擴展、打印機驅動(dòng)等問(wèn)題的CPLD設計方法對CPU是透明的,其意義不僅在于可以提高系統的穩定性、減少CPU負荷、縮短調試周期和降低生產(chǎn)成本,而且可以泛化到DSP或其他類(lèi)型CPU的應用系統中,因此具有推廣價(jià)值。
評論