摘 要:介紹一種基于EZ-USB FX2單片機的LED點陣顯示屏控制系統的實現方法,討論USB 控制器EZ_ USB FX2(CY7C68013)的性能,給出該系統的軟硬件實現方案,包括CY7C68013的固件程序和計算機主機用戶程序。將系統讀取的上位機數據通過USB接口傳輸到FX2單片機,由單片機端點2緩沖區寄存器進行存儲,再對數據進行讀取和顯示,從而實現由FX2單片機完成USB通信及顯示控制,省去額外的單片機當控制器。具有友好的人機交互界面和快速實時顯示的特點。經過實踐證明,該方案實現的LED點陣顯示屏系統能基本滿足符號和文字顯示的需要。
關鍵詞:EZ-USB FX2;LED點陣顯示屏;點陣漢字庫;固體程序
中圖分類號:TP368.1文獻標識碼:A
文章編號:1004-373X(2010)02-034-04
LED Dot_matrix Display Based on EZ-USB FX2
HUANG Jianbin,QIU Hebo,DAI Xiang,CHENG Shuying,LIN Peijie
(College of Physics and Information Engineering,Fuzhou University,Fuzhou,350108,China)
Abstract:An implementation of LED dot_matrix display based on EZ-USB FX2 MCU is introduced.The performance of USB controller EZ_ USB FX2 (CY7C68013 ) and its hardware and software implementation are discussed,including firmware design of CY7C68013 MCU and computer host user program.The display data from computer are transmitted to FX2 MCU through USB interface and stored in endpoint 2 register,the data can be read and displayed.Thus the FX2 MCU can complete USB communication and display control,while it can get rid of additional MUC controller.The system has characteristics of fast real_time display and it can provide a friendly interface between human and machine.It is proved that the LED dot_matrix display system based on this solution can satisfy the requirement of symbol and word display.
Keywords:EZ-USB FX2;LED dot_matrix display;dot_matrix Chinese character library;firmware program
0 引 言
LED顯示屏能直觀形象地顯示各種不同的圖案、文本等信息,是現代都市的一種常用信息發布手段。它廣泛用于證券交易、金融、交通、體育、商場導購促銷顯示、新聞及廣告顯示、車站機場班次時間資訊顯示,比賽電子記分牌等。當前市場上流行的脫機LED顯示屏控制系統的特點可以概括為兩點:
(1) 人機交互系統由計算機控制,每一種顯示屏控制系統對應著一種控制軟件,LED顯示屏用戶將要顯示的文本或圖片通過上位機程序輸入計算機,然后由上位機程序提取文本或圖片的點陣信息并保存;
(2) 通信傳輸系統為有線控制,采用有線電纜作為傳輸介質——多數為RS 232總線或是RS 485總線,根據PC機配置的標準串行接口,進行電平轉換。計算機通過上述總線將點陣信息送給顯示屏掃描控制系統掃描顯示[1]。
這兩種方式都需要單片機控制器,增加了成本,而且采用RS 232總線,插拔不方便,會給用戶帶來不便。本文介紹的方案是可將EZ-USB作為USB接口與PC相連,通過PC機將要顯示的漢字字模提取出來,利用EZ-USB內置的8051處理器控制點陣LED顯示在屏上,省去了單片機控制器。具有人機界面好、速度快、可實時熱插拔、成本低等優點。
1 系統硬件設計
1.1 CY7C68013芯片介紹
這里選用的CY7C68103[2]芯片屬于Cypress公司的EZ-USB FX2系列。該芯片的封裝為56_pin SSOP,它是該系列中功耗最低的。考慮到EZ-USB FX2系列芯片的內部結構相同,這里將主要介紹FX2的特點。Cypress EZ-USB FX2是世界上第一款USB 2.0集成微控制器。它在一個芯片內集成了USB收發器、串行接口引擎(SIE),增強型8051微控制器(CPU)和一個通用可編程接口(GPIF)。圖1是EZ-USB FX2的56_pin封裝結構簡圖\\。
圖1 EZ-USB FX2內部結構圖
集成的USB收發器通過USB電纜的D+和D-線連接到主機,再經串行接口引擎(SIE)進行數據的編碼和解碼,完成錯誤校驗、位填充等與USB協議有關的功能。最終,SIE傳輸來自或者送往USB接口的數據。EZ-USB FX2的SIE可以在12 Mb/s和480 Mb/s兩種速率下運行。CPU采用具有更快執行速度和更多特點的增強型8051,它的內部RAM可用于程序和數據存儲。對于典型的基于EZ-USB FX2的USB設備,CY7C68013的CPU具有雙重功能[2]。
(1) 它執行高級的USB協議。該功能通過控制端點(端點0)服務與主機請求實現;
(2) 通常的系統應用。對于CPU來說,由于USB 2.0支持的數據傳輸速率太高,使其不能直接處理USB數據。所以,CPU只是簡單的配置接口,當EZ-USB FX2的FIFO在USB與外部接口之間開始傳輸數據后就退出該通信通路。
1.2 USB控制電路設計
USB控制器及其外圍電路組成了LED點陣顯示屏的控制和數據傳輸模塊,這部分電路主要負責傳輸來自PC上位機的數據到LED點陣顯示屏顯示,并負責與PC通信。由于CY7C68013集成了多重功能,所以外部電路就顯得相對簡單,減少了一般電路復雜的外部數據線和信號線的連接。USB控制器部分外圍電路原理圖如圖2所示。
CY7C68013用自帶的片內晶振電路和一個外部24 MHz晶振組成系統的時鐘電路。它有一個片內鎖相環(PLL)電路,利用PLL可以把24 MHz振蕩器頻率倍頻至48 MHz,供收發器使用[4]。CY7C68013內部計數器把24 MHz的頻率分頻為內部8051需要默認的12 MHz的時鐘頻率。SCL和SDA分別為I2C總線的時鐘線和數據線,在CY7C68013中,I2C控制器的漏極是開路的,因此將這兩個引腳分別通過一個2.2 kΩ的上拉電阻連接到3.3 V電源上。RESERVED引腳通過一個10 kΩ電阻接地,否則不能正確找到USB設備。該設計沒有使用WAKEUP引腳,所以可通過100 kΩ上拉電阻連接到3.3 V電壓[5]。
圖2 USB控制器的部分外圍電路原理圖
1.3 LED點陣顯示屏電路設計
LED顯示屏是采用8塊8×8點陣顯示屏連接而成的16×32的點陣顯示屏,其中搭接的晶體管用于驅動LED點陣顯示屏;利用并行接口向該點陣顯示屏傳送數據,還有利用74154譯碼器對點陣顯示屏進行列選,再利用7404芯片對兩塊74154進行片選,這樣可以節省24個并行接口,其電路如圖3所示。
圖3 LED點陣顯示屏電路
由于點陣顯示需要較大的驅動電流,所以將16位行選數據線經兩塊74LS245芯片進行電流放大來驅動LED點陣顯示屏顯示。
2 系統軟件設計
2.1 固件程序設計
固件程序是指運行在設備CPU中的程序。固件程序負責初始化,處理標準USB設備請求及LED點陣顯示控制。Cypress公司為CY7C68013提供了固件程序框架和固件函數庫,在Keil C環境下進行開發。由于開發框架的引入,大大提高了用戶開發的效率。固件程序由以下幾部分組成:
(1) Fw.C固件框架程序。用于完成USB設備的基本功能,主要包含初始化、處理標準USB設備請求以及USB掛起時的電源管理等[6]。
(2) bulkloop.C是執行USB外設功能的程序。固件的設計主要針對這個文件,本設計中主要實例化 TD_Init函數、TD_Poll函數和端點2中斷服務程序,實現了讀取上位機數據和控制LED點陣顯示的功能。
① TD_Init()。該函數負責整體狀態變量的初始化,規定各種端點資源、中斷的使用以及配置外圍接口的輸入/輸出等。本設計中對PA,PB和PD初始化為輸出方式,將端點2配置成傳輸方式為Bulk,傳輸方向為out,每個數據包為512 B的數據塊,并開啟端點2的中斷,在接收到數據時,在端點2的中斷服務子程序中對數據進行讀取和處理。
② TD_Poll()。該函數在設備工作期間被反復調用。它主要用于執行外設功能,在處理完高優先級的任務后返回。本設計中LED顯示屏需要實時動態掃描,所以利用框架在空閑時對TD_Poll的不斷調用實現。在TD_Poll中寫入點陣顯示屏的驅動程序,實現了顯示屏的靜止顯示和滾動顯示。
(3) DSCR.A51是描述表文件。負責設備的描述工作,CY7C68013在上電后自動利用其中的VID和PID取代默認的VID和PID。
框架程序首先調用TD_Init()做初始化工作,然后開始重枚舉設備直到端口0檢測到Setup包。一旦檢測到setup包,框架程序就開始執行任務調度程序。流程如圖4所示[5]。
圖4 固件程序框圖
2.2 PC方主控軟件設計
主控軟件包括兩個部分:一個是對漢字字庫的提取,實現漢字點陣轉換;另一個是通過USB口實現計算機對顯示屏的顯示控制。
2.2.1 漢字字庫的提取
在不同的計算機操作環境下實現漢字字模提取方法的原理不同。傳統方法為使用UCDOS 的點字庫,即在計算機系統中,利用二個字節的代碼表示一個漢字。在計算機系統內部,處理和存儲漢字使用的是兩個字節的機內碼。為了保證中西文兼容,即與ASCII 碼的使用不發生沖突,漢字中兩個字節的最高位均為1。1981年我國正式發布國家標準:《信息交換用漢字編碼字符集——基本集》(GB2312_80)。在這個標準中,GB2312國標字符集構成一個三維平面,分成94行,94列行號稱為區號,列號稱為位號,每一個漢字或字符在碼表中都有各自的位置,因此各有一個惟一的位置編碼,該編碼就是字符所在區號(行號) 及位號(列號) 的二進制代碼(7 位區號在左,7位位號在右,共14 位) ,這就叫漢字的區位碼。區位碼指出該漢字集中的位置[7]。
UCDOS為用戶提供了大多數漢字的16點陣和24點陣字庫。本設計采用16點陣的漢字庫,其字庫文件為HZK16。漢字點陣字模代碼是按照區位碼的順序在文件HZK16中存放的。在程序中容易獲得漢字的機內碼,如果知道區位碼和機內碼之間的關系,就可以編程得到字模代碼[1]。
區位碼和機內碼的關系為:
機內碼高字節=區碼+ A0H;機內碼低字節=位碼+ A0H。
經上述分析可得,獲取漢字字模的基本步驟是獲取漢字的機內碼;通過漢字的機內碼推算出區位碼;由區位碼計算出漢字在字庫中的位置偏移地址offset:offset=[(區碼-1)×94+(位碼-1)]×32;
從該偏移地址讀取 32 個字節,就是相關漢字的點陣字模代碼[6]。
2.2.2 USB傳輸控制
PC端主機應用程序是操作系統與用戶之間的接口,Windows系統把每一個設備都抽象為文件,應用程序通過調用對文件操作的應用編程接口(API)函數實現與USB設備的通信[8]。本程序實現EZ-USB FX2與計算機的通信,在界面軟件中輸入所要顯示的漢字,經USB傳輸到單片機中,使顯示屏可固定、平移地顯示漢字。
該應用程序采用VC 6.0編譯器進行編譯[9],界面程序使用C++語言編寫[10]。當下位機上電并與計算機連接后,應用程序首先檢測USB設備是否與上位機連接成功,直到設備重枚舉,程序與設備能正常通信為止,如圖5所示。數據通過塊傳輸方式向USB設備的端點2傳送數據。軟件工作具體過程是打開應用程序,應用程序首先進行初始化查找USB設備,獲得設備句柄。當啟動傳輸后,程序先檢測是否已輸入要顯示的漢字;若檢測到已輸入,則提取輸入漢字的字模數據。通過USB發送字模數據到下位機端點2緩沖區。程序流程框圖如圖6所示。
圖5 上位機程序界面
圖6 應用程序流程圖
通過USB 2.0芯片Cy7C68013的硬件連接設計和系統軟件設計,實現了LED顯示屏的滾動顯示。硬件調試效果見圖7。
3 結 語
該方案在實現將USB控制芯片進行傳輸控制的同時,實現了LED顯示屏的顯示控制。相比其他USB系統省去了單片機控制器,節約了成本。相比于使用其他串行傳輸方式,使用USB傳輸方式更方便易用。經過實際制作證明,該方案實現的LED點陣顯示屏能基本滿足圖片文字顯示的需要。
圖7 硬件調試效果圖
參考文獻
[1]鄧宏貴,汪龍峰,李志堅,等.基于USB_host技術顯示控制系統的擴展研究[J].光電子技術,2008,28(1):55_59.
[2]賈寶金,王寶珠,李曉玲.基于USB的數據采集系統的設計與研究[J].現代電子技術,2007,30(24):187_190.
[3]許永和.USB外圍設備設計與應用——EZ-USB FX 系列單片機應用[M].北京:北京航空航天大學出版社,2002.
[4]陳茜,劉文怡,熊繼軍,等.基于EZ-USB與FX2的通用數據傳輸模塊[J].微計算機信息,2006,22(35):74_76.
[5]錢峰.EZ-USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.
[6]王保華.利用VC++實現漢字字模的提取與小漢字庫的生成[J].單片機與嵌入式系統應用,2002(1):41_42.
[7]黃金龍.點陣漢字字模提取軟件設計[J].南昌職業技術師范學院學報,2001(5):3_18,25.
[8]李波,劉嘉勇,蔣瑜,等.基于EZ-USB FX2的單向傳輸系統設計與實現[J].信息與電子工程,2008,6(1):46_50.
[9]王艷平,張錚.Windows程序設計[M].2版.北京:人民郵電出版社,2008.
[10]錢能.C++程序設計教程[M].2版.北京:清華大學出版社,2008.
[11]劉振波,熊慶國,唐明濤.FPGA和EZ-USBFX2在采集圖像數據中的應用\\.現代電子技術,2009,32(8): 31_32.
[12]韓昌,賴松林,程樹英.基于USB接口的電化學沉積儀器數據采集系統的研究\\.現代電子技術,2009,32(9):149_152.
作者簡介 黃建斌 男,1988年出生,福建福安人。研究方向為電子科學與技術。
邱河波 男,1988年出生,福建漳州人。研究方向為電子科學與技術。
戴 祥 男,1987年出生,福建泉州人。研究方向為電子科學與技術。
程樹英 女,1966年出生,福建武夷山人,教授。研究方向為光電薄膜材料、光電器件及應用。