專利名稱:基于usb接口的打標(biāo)控制器的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型屬于激光打標(biāo)機(jī)的打標(biāo)控制器,具體涉及一種基于通用串行總線USB 接口的打標(biāo)控制器。
技術(shù)背景在振鏡掃描式激光打標(biāo)系統(tǒng)中,控制系統(tǒng)的硬件電路都是基于計(jì)算機(jī)ISA總線或 PCI總線而設(shè)計(jì)的控制卡,必須安裝在計(jì)算機(jī)主板的ISA總線或PCI總線擴(kuò)展槽中, 給整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行帶來影響,降低了打標(biāo)系統(tǒng)的穩(wěn)定性;控制卡輸出的模擬電壓 信號(hào)要通過一段較長(zhǎng)的電纜才能傳輸?shù)秸耒R控制電路中,打標(biāo)系統(tǒng)中的激光電源產(chǎn)生 的強(qiáng)電磁干擾很容易通過傳輸電纜引入到振鏡控制電路中,影響振鏡的正常工作控 制卡要和計(jì)算機(jī)一起使用,增加了控制系統(tǒng)的體積,也增加了控制系統(tǒng)的成本。還有 一種由單片機(jī)控制的激光打標(biāo)控制器雖然脫離了計(jì)算機(jī)的ISA總線或PCI總線,但 是單片機(jī)的存儲(chǔ)容量有限,而且其進(jìn)行插補(bǔ)運(yùn)算的速度很慢,只能進(jìn)行一些簡(jiǎn)單的插 補(bǔ)算法,因而不能對(duì)一些復(fù)雜的圖案進(jìn)行標(biāo)刻,其使用范圍有限,不能充分發(fā)揮激光 打標(biāo)使用靈活的優(yōu)點(diǎn)。 發(fā)明內(nèi)容本實(shí)用新型提供一種基于USB接口的打標(biāo)控制器,目的是克服現(xiàn)有技術(shù)的缺陷, 既滿足客戶對(duì)復(fù)雜圖形打標(biāo)的要求,又滿足對(duì)簡(jiǎn)單圖案打標(biāo)的要求,同時(shí)調(diào)整、修改、 安裝方便,工業(yè)現(xiàn)場(chǎng)運(yùn)行穩(wěn)定可靠,即插即用。本實(shí)用新型的一種基于USB接口的打標(biāo)控制器,包括USB接口控制器單元、數(shù) 據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、D/A轉(zhuǎn)換單元、邏輯控制單元和人機(jī)接口單元;其中USB接口控制器單元,支持USB1.:1規(guī)范,具有獨(dú)立的8位數(shù)據(jù)總線和16位地 址總線,有利于芯片的外圍電路擴(kuò)展;通過數(shù)據(jù)總線與數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元 及邏輯控制單元電信號(hào)連接;通過地址總線與數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、邏輯控 制單元、D/A轉(zhuǎn)換單元及人機(jī)接口單元的LCD顯示模塊電信號(hào)連接;數(shù)據(jù)存儲(chǔ)單元,在聯(lián)機(jī)使用模式時(shí)作為本打標(biāo)控制器的數(shù)據(jù)緩沖區(qū),暫存上位 機(jī)傳輸過來的打標(biāo)數(shù)據(jù),在脫機(jī)使用模式時(shí)存儲(chǔ)打標(biāo)文件的打標(biāo)數(shù)據(jù);與邏輯控制單 元電信號(hào)連接;程序存儲(chǔ)單元,存儲(chǔ)USB接口控制器單元的固件程序;與邏輯控制單元電信號(hào)連接;D/A轉(zhuǎn)換單元,具有3路D/A轉(zhuǎn)換通道,對(duì)打標(biāo)數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換,分別輸出模 擬電壓信號(hào)去控制振鏡X軸、Y軸以及激光功率與邏輯控制單元電信號(hào)連接;邏輯控制單元,對(duì)USB接口控制器單元的地址進(jìn)行譯碼,產(chǎn)生D/A轉(zhuǎn)換單元、 數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、人機(jī)接口單元的選通信號(hào),對(duì)數(shù)據(jù)存儲(chǔ)器的高位地址 進(jìn)行鎖存,為外圍電路提供I/0口;人機(jī)接口單元,由鍵盤和LCD顯示模塊組成,在脫機(jī)使用時(shí)對(duì)控制器進(jìn)行打標(biāo)文 件選取、設(shè)定打標(biāo)參數(shù)、刪除打標(biāo)文件等操作;與邏輯控制單元電信號(hào)連接。所述的基于USB接口的打標(biāo)控制器,其特征在于所述D/A轉(zhuǎn)換單元中控制振鏡 X軸和控制振鏡Y軸的2路D/A同時(shí)轉(zhuǎn)換,其輸出經(jīng)過運(yùn)算放大器以使其輸出電壓 信號(hào)與振鏡的輸入電壓信號(hào)兼容;控制激光功率的D/A電路只有1路數(shù)/模轉(zhuǎn)換通道, 為與8位數(shù)據(jù)總線兼容的12位電壓輸出型DAC,其電壓輸出信號(hào)與激光功率控制信 號(hào)要求的輸入電壓兼容。所述的基于USB接口的打標(biāo)控制器,其特征在于所述人機(jī)接口單元中,鍵盤的 接口方式采用獨(dú)立方式,每個(gè)獨(dú)立按鍵以一對(duì)一的方式直接接到I/0瑜入線上,LCD 顯示采用點(diǎn)陣圖形液晶顯示模塊。本實(shí)用新型既能與計(jì)算機(jī)聯(lián)機(jī)使用,又能脫離計(jì)算機(jī)單獨(dú)使用。當(dāng)打標(biāo)的內(nèi)容復(fù) 雜,生成的打標(biāo)數(shù)據(jù)比較大時(shí),控制器就與計(jì)算機(jī)聯(lián)機(jī)使用,由計(jì)算機(jī)經(jīng)過插補(bǔ)處理 的打標(biāo)數(shù)據(jù)通過USB總線傳輸給控制器進(jìn)行實(shí)時(shí)數(shù)/模轉(zhuǎn)換,直接控制打標(biāo)系統(tǒng)。當(dāng) 打標(biāo)的內(nèi)容比較簡(jiǎn)單,生成的打標(biāo)數(shù)據(jù)比較小時(shí),可以把山計(jì)算機(jī)經(jīng)過插補(bǔ)處理的打 標(biāo)數(shù)據(jù)通過USB接口保存在控制器的存儲(chǔ)器中,然后由控制器中的單片機(jī)來控制打 標(biāo)數(shù)據(jù)的數(shù)/模轉(zhuǎn)換,再去控制打標(biāo)系統(tǒng),這樣單片機(jī)就不需要對(duì)打標(biāo)數(shù)據(jù)進(jìn)行插補(bǔ) 處理,從而大幅度地提高了控制器的打標(biāo)速度。另外,其中的打標(biāo)內(nèi)容還可以由計(jì)算 機(jī)通過USB接口隨意改寫,并可以通過控制器上的鍵盤和LCD顯示對(duì)其進(jìn)行編輯、 設(shè)定打標(biāo)參數(shù)等操作。
圖l是本實(shí)用新型組成示意圖;圖2為USB接口控制器單元電路;圖3為數(shù)據(jù)存儲(chǔ)單元和程序存儲(chǔ)單元電路;圖4為D/A轉(zhuǎn)換單元電路;圖5為邏輯控制單元電路;圖6為控制器邏輯控制單元的邏輯控制關(guān)系圖; 圖7為人機(jī)接口單元電路;圖8為聯(lián)機(jī)工作USB傳輸過程的流程圖;圖9為脫機(jī)工作USB傳輸過程流程圖;圖10為固件程序框架流程圖; 圖ll為打標(biāo)數(shù)據(jù)輸出流程圖; 圖12為鍵盤輸入和LCD顯示流程圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本實(shí)用新型加以說明。圖1是本實(shí)用新型的總體框架示意圖,包括USB接口控制器單元、數(shù)據(jù)存儲(chǔ)單 元、程序存儲(chǔ)單元、D/A轉(zhuǎn)換單元、邏輯控制單元和人機(jī)接口單元。 下面結(jié)合圖2 圖7通過實(shí)施例對(duì)本實(shí)用新型進(jìn)行詳細(xì)說明 1. USB接口控制器單元USB接口控制器單元電路如圖2所示,它由芯片U1、 U7、 U8、 U9、 U10,插座 和跳線J1、 J2、 J3、 J5以及拔碼開關(guān)S4組成。Ul選用Cypress公司的EZ-USB系列的AN2131Q作為USB接口控制器,它是 支持USB1.1規(guī)范的全速USB接口控制器芯片,是整個(gè)電路的核心,具有80個(gè)引腳, 有獨(dú)立的8位數(shù)據(jù)總線和16位地址總線,有利于芯片的外圍電路擴(kuò)展,它的處理器 是增強(qiáng)型的8051內(nèi)核,與通用的8051指令兼容,但平均運(yùn)行速度快2,5倍,有利于 提高打標(biāo)數(shù)據(jù)輸出的速度;外接12MHz的晶振,在芯片內(nèi)部通過倍頻電路倍頻到 24HMz, USBD-和USBD+引腳通過兩個(gè)22 Q電阻分別和B型USB插座Jl的D+和 D-相連。PA2/OE弁、PA3/CS弁、PA4/FWR弁、PA5/FRD#、 PC6/WR#、 PC7/RD弁等6個(gè) 引腳是多功能引腳,使用第二功能時(shí)引腳必須接上拉電阻,以確保沒有控制信號(hào)輸出 時(shí)引腳信號(hào)無效。WAKEUP弁引腳接下拉電阻是為了防止8051進(jìn)入掛起狀態(tài),確保 EZ-USB —直都能運(yùn)行。跳線J2決定EZ-USB復(fù)位時(shí)是否進(jìn)行斷開重新連接操作,當(dāng)1-2相連時(shí),有斷 開重新連接操作,當(dāng)2-3相連時(shí)沒有斷開重新連接操作。跳線J3決定8051內(nèi)核是從 EZ-USB芯片內(nèi)部程序RAM中開始獲得程序代碼還是從外部程序存儲(chǔ)器開始獲得代 碼,當(dāng)l-2相連時(shí),從外部程序存儲(chǔ)器開始獲得代碼,PSEN引腳從程序存儲(chǔ)器的地 址0x0000開始有效,當(dāng)2-3相連時(shí)從內(nèi)部程序RAM中開始獲得程序代碼,PSEN引 腳從程序存儲(chǔ)器的地址0xlB40開始有效。跳線J5在對(duì)控制器的硬件電路進(jìn)行測(cè)試時(shí)
使用,當(dāng)2-3相連時(shí),EZ-USB的所有功能引腳浮空以便對(duì)EZ-USB的外圍電路進(jìn)行 在板測(cè)試,正常使用時(shí),使l-2相連。U7是TI公司的SN75240PW芯片,它是USB接口瞬變抑制器,用來防止靜電損壞 USB接口電路。U8是MAXIM公司的MAX687芯片,它是3.3V線性穩(wěn)壓器,用來把5V電壓變 為3,3V。 EZ-USB是3.3V供電,而目前大多數(shù)的直流電源只能提供5V電壓,因此 必須把5V電壓變?yōu)?.3V。 U8的輸入電壓的范圍為2.7V到11.5V,輸出電壓的范圍 為3.15V到3.45V,典型值為3.3¥,能夠提供200mA的電流,完全滿足EZ-USB對(duì) 電源的要求。U9是Microchip公司的I2C串行EEPROM 24LC02,其容量為2Kbit(256X8),Vcc 的范圍為1.8V到5.5V,可以擦寫一百萬次。它主要用來存儲(chǔ)產(chǎn)品標(biāo)識(shí)碼PID、廠家標(biāo) 識(shí)碼VID和設(shè)備標(biāo)識(shí)碼DID,此時(shí)串行EEPROM的第一個(gè)字節(jié)必須為0xB0。它也 可以用來存儲(chǔ)EZ-USB固件程序,此時(shí)串行EEPROM的第一個(gè)字節(jié)必須為0xB2,當(dāng) AN2131Q上電時(shí),其USB內(nèi)核會(huì)自動(dòng)把固件程序裝入AN2131Q的RAM的程序存 儲(chǔ)區(qū)。U10是MAXIM公司的MAX706微處理器監(jiān)控芯片,具有系統(tǒng)上電掉電時(shí)輸出 復(fù)位信號(hào)、低電平有效的手動(dòng)復(fù)位輸入、看門狗定時(shí)器、1.25V門限值檢測(cè)器等功能。 PFI引腳為電源故障輸入端,Rll和R12為分壓電阻,當(dāng)+ 5V電源的電壓低于4.7V 時(shí),PFI引腳的輸入電壓低于1.25V, MAX706的電源故障輸出端PFO輸出一個(gè)低電 平信號(hào),通知AN2131Q為電源掉電做準(zhǔn)備。WDI引腳為看門狗輸入端,當(dāng)WDI引 腳的輸入信號(hào)在1.6s內(nèi)沒有變化時(shí),看門狗輸出端WDO會(huì)變?yōu)榈碗娖?,通過二極管 D4與手動(dòng)輸入端相連,使復(fù)位輸出端產(chǎn)生一個(gè)低電平信號(hào),使AN2131Q復(fù)位???門狗定時(shí)器可以使單片機(jī)擺脫死機(jī)狀態(tài)。2.數(shù)據(jù)存儲(chǔ)單元和程序存儲(chǔ)單元數(shù)據(jù)存儲(chǔ)單元和程序存儲(chǔ)單元由數(shù)據(jù)存儲(chǔ)器U3和程序存儲(chǔ)器U4組成,其硬件 電路如圖3所示。數(shù)據(jù)存儲(chǔ)單元數(shù)據(jù)存儲(chǔ)容量為2048KX8,它具有20位地址總線,地址總線分為 低15位和高6位兩部分,低15位地址由AN2131Q的地址總線的低15位輸出,高6 位由AN2131Q的數(shù)據(jù)總線通過在CPLD中設(shè)置的鎖存器輸出。數(shù)據(jù)存儲(chǔ)單元在聯(lián)機(jī) 使用模式時(shí)作為本打標(biāo)控制器的數(shù)據(jù)緩沖區(qū),暫存上位機(jī)傳輸過來的打標(biāo)數(shù)據(jù),在脫 機(jī)使用模式時(shí)存儲(chǔ)打標(biāo)文件的打標(biāo)數(shù)據(jù),所以它應(yīng)該具有讀寫速度快、擦寫次數(shù)不限、 掉電后數(shù)據(jù)不丟失和存儲(chǔ)容量大等特點(diǎn)。因此可以釆用TI公司的非易失性存儲(chǔ)器 BQ4016MC作為數(shù)據(jù)存儲(chǔ)單元的存儲(chǔ)芯片,容量為1024KX8, +5V供電。它的內(nèi) 部是由鋰電池和標(biāo)準(zhǔn)的SRAM以及電壓監(jiān)控電路組成。當(dāng)電壓監(jiān)控電路發(fā)現(xiàn) BQ4016MC的Vcc引腳電壓低于電壓失壓檢測(cè)閾值4.62V時(shí),內(nèi)部控制電路自動(dòng)對(duì) SRAM采取寫保護(hù)措施保護(hù)其內(nèi)部的數(shù)據(jù)不被破壞,所有的輸出引腳為高阻狀態(tài),所 有的輸入引腳無效,當(dāng)Vcc降低到3V時(shí),內(nèi)部控制電路把SRAM的供電由外部自 動(dòng)切換到鋰電池,直到Vcc恢復(fù)正常電壓為止。因此,在上電后,其使用和一般的 SRAM—樣,具有讀寫速度快(70ns),擦寫次數(shù)沒有限制,掉電后內(nèi)部數(shù)據(jù)不會(huì)丟失, 而且至少可以保存10年??紤]到TI公司容量為2048KX8的非易失性存儲(chǔ)器 BQ4017MC的引腳與BQ4016MC的引腳兼容,BQ4016MC中沒連接的引腳2在 BQ4017MC中為地址總線的A20引腳,其他引腳都對(duì)應(yīng)相同,因此CPLD中的鎖存 器實(shí)際上輸出的是6位地址線,以便以后對(duì)數(shù)據(jù)存儲(chǔ)器進(jìn)行擴(kuò)容。程序存儲(chǔ)單元存儲(chǔ)USB接口控制器的固件程序。雖然AN2131Q芯片內(nèi)部具有 8KB的RAM,可以用來存儲(chǔ)從計(jì)算機(jī)主機(jī)下載的固件程序,但是其內(nèi)部RAM的程 序存儲(chǔ)空間不能超過6976字節(jié),考慮到控制器要實(shí)現(xiàn)的功能比較多,固件程序會(huì)比 較大,所以固件程序全部放在外部的程序存儲(chǔ)空間,因此在USB接口控制器的外圍 擴(kuò)展了一個(gè)程序存儲(chǔ)單元,程序存儲(chǔ)芯片U4采用Atmel公司的AT29C512 Flash存儲(chǔ)芯片。它是一種釆用CMOS 工藝制成的容量為64KX8位32引腳的快速讀取、可快速編程可電擦除的只讀存儲(chǔ) 器,讀訪問時(shí)間為70ns,可以與一般高速微處理器匹配而不需要插入等待周期。為 了避免總線沖突,芯片上有兩個(gè)選通控制引腳芯片使能CEX和輸出使能Om。它可 以進(jìn)行頁(yè)編程操作,有128B的內(nèi)部地址和數(shù)據(jù)鎖存。具有快速的編程周期時(shí)間,頁(yè) 擦除和編程周期時(shí)間都為lOms。單一電源電壓,用于工作電源和編程電源都為+5V ±10%。三態(tài)輸出,輸入與輸出都與TTL電平兼容。可循環(huán)擦寫次數(shù)為1萬次。固 件程序的寫入是在編程器上進(jìn)行的,芯片正常工作時(shí)應(yīng)該禁止寫入,芯片的寫使能引 腳Wm應(yīng)該接高電平。為了使程序存儲(chǔ)器在AN2131Q運(yùn)行過程中一直選中,芯片使 能CEWI腳應(yīng)該接地。程序存儲(chǔ)器讀使能引腳Om由PSEN弁引腳控制。 3. D/A轉(zhuǎn)換單元D/A轉(zhuǎn)換單元對(duì)打標(biāo)數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換,輸出模擬電壓信號(hào)去控制振鏡X軸和 Y軸以及激光功率,因此它有3路D/A轉(zhuǎn)換通道。D/A轉(zhuǎn)換單元的硬件電路圖如圖4所示,它由兩個(gè)D/A轉(zhuǎn)換芯片U5和U6、兩 個(gè)運(yùn)算放大器U12和U13以及精密電壓基準(zhǔn)芯片Ull組成。U5的作用是對(duì)打標(biāo)數(shù)據(jù)的振鏡X軸和Y軸控制信號(hào)進(jìn)行數(shù)/模轉(zhuǎn)換,使它們變?yōu)槟?擬電壓信號(hào)去控制振鏡X軸和Y軸電機(jī)。為了使打標(biāo)的曲線平滑變化,控制振鏡X軸 和Y軸的2路D/A應(yīng)該同時(shí)轉(zhuǎn)換,以使這兩個(gè)軸的電機(jī)在打標(biāo)輸出時(shí)同時(shí)轉(zhuǎn)動(dòng),所以選 用MAXIM公司的數(shù)/模轉(zhuǎn)換芯片MX7837,它是雙通道、12位、乘法、電壓輸出型D/A 轉(zhuǎn)換器,每路D/A轉(zhuǎn)換器都有一個(gè)輸出放大器和一個(gè)反饋電阻。它具有雙緩沖的8位 數(shù)據(jù)總線接口,與單片機(jī)的8位總線兼容,12位轉(zhuǎn)換數(shù)據(jù)的輸入需要兩次寫操作。所 有的邏輯信號(hào)都是低電平觸發(fā)并且與TTL電平和CMOS電平兼容。U5采用土12V或土 15V供電,轉(zhuǎn)換誤差為土1LSB,電壓輸出建立時(shí)間為4ys??刂萍す夤β实腄/A電路Ull選用MAXIM公司的精密電壓基準(zhǔn)芯片MAX675, 它只有1路數(shù)/模轉(zhuǎn)換通道,為與8位數(shù)據(jù)總線兼容的12位電壓輸出型DAC,其電 壓輸出信號(hào)與激光功率控制信號(hào)要求的輸入電壓兼容。U5內(nèi)部沒有自帶參考電壓, 其參考電壓需要通過VREFA引腳和VREFB引腳輸入。為了獲得高精度的D/A轉(zhuǎn)換, 必須有高穩(wěn)定度的參考電壓源。Ull的作用是為U5提供高穩(wěn)定度的參考電壓。它是 +5V精密電壓基準(zhǔn)芯片,具有優(yōu)異的溫度穩(wěn)定性,能夠保證極低的溫度漂移系數(shù), 同時(shí)還具有低的吸入電流和低噪聲等特性,輸入電壓的范圍為8V到33V,典型值為 15V??梢酝ㄟ^電位器Rpl對(duì)U5的輸出電壓進(jìn)行微調(diào),調(diào)節(jié)的范圍為5V士150mV。U12、 U13是MAXIM公司的低噪聲、高精度運(yùn)算放大器MAX427。 U5的電壓 輸出范圍為-5V—0V,而振鏡控制電路要求的輸入電壓范圍為-5V—+5V,因此,必須 通過運(yùn)算放大器把-5V—0V變?yōu)?5V—+5V。 U12、 U13具有低噪聲、超低的偏移電壓 和溫度漂移、高電壓增益等特性,采用士15V供電。可以通過電位器Rp2和Rp3分 別對(duì)兩路運(yùn)算放大器的輸入偏移電壓進(jìn)行微調(diào)。U6是MAXIM公司的數(shù)/模轉(zhuǎn)換芯片MX7248,它是單通道12位電壓輸出型D/A轉(zhuǎn) 換器,內(nèi)部自帶齊納電壓參考和電壓輸出放大器,因此不需要外部的基準(zhǔn)電壓源。它 具有雙緩沖邏輯接口, 8位數(shù)據(jù)總線,12位轉(zhuǎn)換數(shù)據(jù)的輸入需要兩次寫操作。所有邏 輯信號(hào)都是低電平觸發(fā)并且與TTL電平和CMOS電平兼容。U6采用+15V供電,轉(zhuǎn)換 誤差為士1LSB,電壓輸出建立時(shí)間為5iis。U6的作用是對(duì)打標(biāo)數(shù)據(jù)的功率控制信號(hào)進(jìn)行數(shù)/模轉(zhuǎn)換,使它變?yōu)槟M電壓信號(hào) 去控制激光器的輸出功率。U6的電壓輸出范圍為0V—+10V,與激光功率控制信號(hào) 要求的輸入電壓兼容,所以不需要運(yùn)算放大電路對(duì)其進(jìn)行電壓變換。4.邏輯控制單元
邏輯控制單元采用Altera公司的MAX3000A系列CPLD芯片,其硬件電路如圖 5所示。邏輯控制單元完成對(duì)AN2131Q的地址進(jìn)行譯碼,產(chǎn)生外圍電路各功能單元的選 通信號(hào),對(duì)數(shù)據(jù)存儲(chǔ)器的高位地址進(jìn)行鎖存,為外圍電路提供I/0口。由于邏輯控制 單元需要的I/0引腳比較多,為了避免大量芯片帶來的不便,所以選用Altera公司的 MAX3000A系列可編程邏輯器件CPLD中的EPM3128ATC100,它具有100個(gè)引腳, 80個(gè)可分配I/O。由于邏輯控制關(guān)系可以由MAX+PLUS和Quartus等EDA軟件通 過JTAG接口下載到CPLD中去,而且可以在CPLD的硬件電路不變的情況下更改其 邏輯控制關(guān)系。MAX3000A系列CPLD是高性能、低成本可編程邏輯器件。它釆用MAX體系 結(jié)構(gòu),具有通過JTAG接口進(jìn)行3.3V在系統(tǒng)編程的能力。高密度的PLD,具有600 至廿10,000的可用門。引腳之間的邏輯延時(shí)為4.5ns,多電壓接口,能夠使器件內(nèi)核工 作在3.3V而I/O引腳與5V、 3.3V、 2.5V邏輯電平兼容,引腳數(shù)量的范圍從44到256。 它采用CMOSEEPROM工藝,編程和擦除次數(shù)可達(dá)100次。具有可編程加密位,可 對(duì)芯片內(nèi)的設(shè)計(jì)加密,使別人不能輕易地讀出芯片內(nèi)的設(shè)計(jì)數(shù)據(jù)。圖6是控制器邏輯控制單元的邏輯控制關(guān)系圖??梢杂脠D形輸入的方法把它輸入 至IJAltera公司的EDA軟件MAX+PLUS或Quartus中進(jìn)行編譯,然后通過JTAG下載 線下載到CPLD中。AN2131Q的地址總線為16位,可以訪問外部64KB存儲(chǔ)空間,但是在地址為 0x0000—0xlFFF和0x7B40—0x7FFF的存儲(chǔ)空間,其RD#、 WR#、 CS#、 OE弁等控制 信號(hào)無效,因而當(dāng)AN2131Q訪問外部存儲(chǔ)器時(shí),不能連續(xù)尋址外部64KB存儲(chǔ)空間。 為了對(duì)外部數(shù)據(jù)存儲(chǔ)器實(shí)現(xiàn)連續(xù)存取,充分利用其存儲(chǔ)空間,對(duì)存儲(chǔ)器按頁(yè)來讀寫, 每頁(yè)大小為32KB,其存儲(chǔ)單元地址由單片機(jī)的低15位地址線A0—A14來提供,為了 避免讀寫控制信號(hào)無效的地址空間,把每頁(yè)存儲(chǔ)單元的地址定為0x8000—0xFFFF。 存儲(chǔ)器的高位地址為頁(yè)地址,對(duì)于2048KX8的存儲(chǔ)器,其頁(yè)地址從0x00到0x40。 從圖6的邏輯控制關(guān)系圖可以看出,當(dāng)AN2131Q訪問0x0000到0x7FFF的存儲(chǔ)空間 時(shí),A15引腳為低電平,外部數(shù)據(jù)存儲(chǔ)器的片選信號(hào)CE為高電平,外部數(shù)據(jù)存儲(chǔ)器 沒有被選中,單片機(jī)不能訪問外部數(shù)據(jù)存儲(chǔ)器,而當(dāng)AN2131Q訪問0x8000到OxFFFF 的存儲(chǔ)空間時(shí),A15引腳為高電平,外部數(shù)據(jù)存儲(chǔ)器的片選信號(hào)CE為低電平,外部 數(shù)據(jù)存儲(chǔ)器被選中,單片機(jī)可以訪問外部數(shù)據(jù)存儲(chǔ)器。外部數(shù)據(jù)存儲(chǔ)器的頁(yè)地址(存 儲(chǔ)器高6位)1A15 — 1A20由數(shù)據(jù)總線通過鎖存器輸出。
地址線A4—A15參加譯碼,通過譯碼器產(chǎn)生外部1/0 口的片選信號(hào)。各端口地 址如下1. DAC1—2: D/A轉(zhuǎn)換開始信號(hào)端口 LDACa地址一0x300X(X為任意值,下同);片選信號(hào)輸出端口 CSa地址一0x301X;2. DAC3: D/A轉(zhuǎn)換開始信號(hào)端口 LDACb地址—Ox302X;低8位輸出端口 CSLSB地址一0x303X; 高4位輸出端口 CSMSB地址一0x304X;3. LCD: 片選信號(hào)輸出端口 CS1地址一0x305X;4. 聲光Q開關(guān) 控制信號(hào)輸出端口 Q地址一0x306X;5. 數(shù)據(jù)存儲(chǔ)器高位地址輸出端口 AddrH地址一0x307X;6. 鍵盤 接口 A端口 KeyA地址一0x308X;接口 B端口 KeyB地址—0x309X。 AN2131Q的讀寫信號(hào)RD和WR以及數(shù)據(jù)總線DO—D7經(jīng)過CPLD輸出,是為 了提高它們的驅(qū)動(dòng)能力。AN2131Q的每個(gè)引腳的最大輸出電流只有土1.6mA,而 AN2131Q數(shù)據(jù)總線和控制總線要驅(qū)動(dòng)的芯片有5個(gè)之多,考慮到MAX3000A系列 CPLD的每個(gè)I/O引腳的最大輸出電流達(dá)到土25mA,因此這樣做既提高了單片機(jī)的 數(shù)據(jù)總線和控制總線的驅(qū)動(dòng)能力,又省去了使用緩沖器的麻煩,充分利用了CPLD的 I/O引腳。微處理器監(jiān)控芯片U10輸出的RESET信號(hào)是低電平有效,而AN2131Q的復(fù)位 信號(hào)是高電平有效,因此使RESET信號(hào)在CPLD中反相后輸出。 5.人機(jī)接口單元人機(jī)接口單元主要是在脫機(jī)使用時(shí)對(duì)控制器進(jìn)行打標(biāo)文件的選取、設(shè)定打標(biāo)參 數(shù)、刪除打標(biāo)文件等控制操作,它由鍵盤和LCD顯示模塊組成,其硬件電路如圖7 所示,它主要包括鍵盤接口插座P9和LCD顯示模塊接口插座P2以及帶施密特觸發(fā) 器的反相器U15。為了利用充分利用CPLD的I/0引腳,簡(jiǎn)化按鍵査詢程序,鍵盤的接口方式采用 獨(dú)立方式,每個(gè)獨(dú)立按鍵以一對(duì)一的方式直接接到CPLD的I/0輸人線上,每個(gè)輸入 引腳都接上一個(gè)上拉電阻,使鍵盤的輸入為低電平有效。鍵盤端口 A的8位按鍵 KEYA0—KEYA7的狀態(tài)和端口 B的8位按鍵KEYB0—KEYB7的狀態(tài)由單片機(jī)通過 數(shù)據(jù)總線讀入,而其他輸入引腳通過帶施密特觸發(fā)器的反相器U15直接與單片機(jī)的 INTO、 INT1、 INT4、 INT6等中斷請(qǐng)求信號(hào)輸入引腳相連。帶施密特觸發(fā)器的反相器 使按鍵的輸入信號(hào)波形變得陡直,保證單片機(jī)能夠可靠地檢測(cè)到中斷請(qǐng)求信號(hào)。 各個(gè)按鍵的功能定義如下S1—數(shù)字鍵0;S2 —數(shù)字鍵l;S3 —數(shù)字鍵2;S4 —數(shù)字鍵3;S5 —數(shù)字鍵4;S6-數(shù)字鍵5; S7 —數(shù)字鍵6; S8 —數(shù)字鍵7; S9—數(shù)字鍵8; S10—數(shù)字鍵4;Sll—保留;S12—" + "號(hào);S13—"—"號(hào);S14 —確認(rèn); S15 —取消;S16 —保留;S17 —停止; S18 —開始; S19—復(fù)位; S20 —功能;LCD顯示模塊的型號(hào)為YM12864F,其接口引腳如圖7所示。YM12864F是128 X64點(diǎn)陣圖形液晶顯示模塊,它自帶T6963C LCD控制器和T6A39、 T6A40 LCD驅(qū) 動(dòng)器,8KB的外部顯示存儲(chǔ)器(SRAM), 128個(gè)字符的內(nèi)部字符發(fā)生器CGROM,有 圖形、字符、圖形和字符混合三種顯示模式以及6X8和8X8兩種顯示字體。YM12864F可以采用負(fù)電源和+5V供電,也可以采用單一 + 5V供電。采用負(fù)電 源和+5V供電時(shí)可以通過電位器Rp4來調(diào)節(jié)LCD顯示的對(duì)比度。可調(diào)電阻R52用 來調(diào)節(jié)顯示模塊的背光亮度。以下結(jié)合圖8至圖12說明本實(shí)用新型的工作過程USB批量數(shù)據(jù)傳輸是大批串行數(shù)據(jù)的傳輸,光有打標(biāo)數(shù)據(jù)的格式還不行,還得規(guī) 定打標(biāo)數(shù)據(jù)的傳輸順序,讓單片機(jī)知道打標(biāo)數(shù)據(jù)什么時(shí)候傳輸開始,什么時(shí)候傳輸結(jié) 束,各個(gè)字節(jié)屬于哪一個(gè)打標(biāo)插補(bǔ)點(diǎn)數(shù)據(jù)的哪一部分。我們規(guī)定,在第一個(gè)批量傳輸事務(wù)的開始為一個(gè)打標(biāo)文件的打標(biāo)數(shù)據(jù)傳輸開始, 當(dāng)打標(biāo)文件的打標(biāo)數(shù)據(jù)傳輸完畢后,主機(jī)通過控制傳輸發(fā)送一個(gè)打標(biāo)數(shù)據(jù)傳輸完畢信 號(hào),單片機(jī)就知道打標(biāo)數(shù)據(jù)傳輸完畢。在批量傳輸過程中,打標(biāo)數(shù)據(jù)是按第l個(gè)插補(bǔ) 點(diǎn)的打標(biāo)數(shù)據(jù)一第2個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)一第3個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)…這樣的 順序傳輸?shù)模總€(gè)插補(bǔ)點(diǎn)數(shù)據(jù)的每個(gè)字節(jié)是按如下順序傳輸?shù)?. 矢量打標(biāo)時(shí)振鏡X軸定位控制信號(hào)低8位XL —振鏡X軸定位控制信號(hào) 高8位XH —振鏡Y軸定位控制信號(hào)低8位YL —振鏡Y軸定位控制信號(hào)高8位 YH—聲光Q開關(guān)控制信號(hào)Q;2. 點(diǎn)陣打標(biāo)時(shí)振鏡X軸定位控制信號(hào)低8位XL —振鏡X軸定位控制信號(hào) 髙8位XH —振鏡Y軸定位控制信號(hào)低8位YL —振鏡Y軸定位控制信號(hào)髙8位 YH。當(dāng)控制器中的單片機(jī)正確從USB總線傳輸過來的數(shù)據(jù)中取出打標(biāo)數(shù)據(jù)后,再加 上相應(yīng)的控制信號(hào),如延時(shí)控制信號(hào)、激光功率控制信號(hào)(用2個(gè)字節(jié)表示,PL表
示低8位,PH表示高8位),以插補(bǔ)點(diǎn)為單位,按USB總線傳輸過來的順序輸出。 每次輸出一個(gè)插補(bǔ)點(diǎn)時(shí),其數(shù)據(jù)的每個(gè)字節(jié)的輸出順序如下-1. 矢量打標(biāo)時(shí)振鏡X軸定位控制信號(hào)低8位XL —振鏡X軸定位控制信號(hào) 高8位XH —振鏡Y軸定位控制信號(hào)低8位YL —振鏡Y軸定位控制信號(hào)高8位 YH—激光功率控制信號(hào)低8位PL —激光功率控制信號(hào)高8位PH —聲光Q開關(guān) 控制信號(hào)Q —延時(shí)控制信號(hào);2. 點(diǎn)陣打標(biāo)時(shí)振鏡X軸定位控制信號(hào)低8位XL —振鏡X軸定位控制信號(hào) 高8位XH —振鏡Y軸定位控制信號(hào)低8位YL —振鏡Y軸定位控制信號(hào)高8位 YH—激光功率控制信號(hào)低8位PL —激光功率控制信號(hào)高8位PH —聲光Q開關(guān) 出光控制信號(hào)Q —延時(shí)控制信號(hào)一聲光Q開關(guān)關(guān)光控制信號(hào)Q;聯(lián)機(jī)工作USB傳輸過程的流程圖如圖8所示。首先上位機(jī)通過控制傳輸向控制 器發(fā)出獲取控制器狀態(tài)請(qǐng)求,控制器使用1個(gè)字節(jié)的數(shù)據(jù)返回控制器狀態(tài),如果控制 器返回"打標(biāo)中"或"出錯(cuò)"狀態(tài)或在規(guī)定時(shí)間內(nèi)沒有返回控制器狀態(tài)數(shù)據(jù),貝U上位 機(jī)報(bào)告控制器的狀態(tài),如果控制器返回"空閑"狀態(tài),則上位機(jī)向控制器發(fā)出設(shè)置工 作模式請(qǐng)求和設(shè)置打標(biāo)參數(shù)請(qǐng)求,告訴控制器打標(biāo)工作模式為"聯(lián)機(jī)工作、矢量打標(biāo) 或點(diǎn)陣打標(biāo)",并確定插補(bǔ)周期和激光功率。如果上位機(jī)在控制傳輸?shù)臓顟B(tài)階段收到 控制操作成功完成的應(yīng)答信號(hào),則上位機(jī)就可以使用批量傳輸中的OUT事務(wù)(數(shù)據(jù) 凈負(fù)荷區(qū)的長(zhǎng)度為64字節(jié))依次傳送各個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)??刂破靼焉衔粰C(jī)傳來 的打標(biāo)數(shù)據(jù)存放在32KB的緩沖器中,當(dāng)緩沖器中存滿16KB打標(biāo)數(shù)據(jù)時(shí),控制器以 插補(bǔ)周期定時(shí)產(chǎn)生中斷,每次中斷輸出l個(gè)插補(bǔ)點(diǎn)。當(dāng)打標(biāo)數(shù)據(jù)不足16KB時(shí),上位 機(jī)通過發(fā)出開始打標(biāo)請(qǐng)求來啟動(dòng)控制器的打標(biāo)輸出。當(dāng)打標(biāo)數(shù)據(jù)傳輸完畢時(shí),上位機(jī) 通過控制傳輸發(fā)出數(shù)據(jù)傳輸結(jié)束請(qǐng)求,告訴控制器打標(biāo)數(shù)據(jù)己傳輸完畢。在聯(lián)機(jī)打標(biāo) 過程中,如果需要中途停止打標(biāo),上位機(jī)可以通過放棄打標(biāo)請(qǐng)求來結(jié)束打標(biāo)操作。脫機(jī)工作USB傳輸過程的流程圖如圖9所示。首先,上位機(jī)通過控制傳輸向控 制器發(fā)出獲取控制器狀態(tài)請(qǐng)求,控制器使用1個(gè)字節(jié)的數(shù)據(jù)返回控制器狀態(tài),如果控 制器返回"打標(biāo)中"或"出錯(cuò)"狀態(tài)或在規(guī)定時(shí)間內(nèi)沒有返回控制器狀態(tài)數(shù)據(jù),則上 位機(jī)報(bào)告控制器的狀態(tài),如果控制器返回"空閑"狀態(tài),則上位機(jī)再向控制器發(fā)出獲 取剩余存儲(chǔ)器空間請(qǐng)求,控制器用4個(gè)字節(jié)的數(shù)據(jù)返回控制器剩余存儲(chǔ)器空間大小, 用1個(gè)字節(jié)返回存儲(chǔ)的文件數(shù)量。如果剩余存儲(chǔ)器空間小于打標(biāo)文件大小或文件數(shù)量 為10,則上位機(jī)就報(bào)告控制器剩余空間不足或文件數(shù)量超額,如果如果剩余存儲(chǔ)器 空間大于或等于打標(biāo)文件大小且文件數(shù)量小于10,則上位機(jī)再使用控制傳輸向控制
器發(fā)出設(shè)置工作模式請(qǐng)求和設(shè)置打標(biāo)參數(shù)請(qǐng)求,告訴控制器打標(biāo)工作模式為"脫機(jī)工 作、矢量打標(biāo)或點(diǎn)陣打標(biāo)",并確定插補(bǔ)周期和激光功率。如果上位機(jī)在控制傳輸?shù)臓顟B(tài)階段收到控制操作成功完成的應(yīng)答信號(hào),則上位機(jī)使用批量傳輸中的OUT事務(wù) (數(shù)據(jù)凈負(fù)荷區(qū)的長(zhǎng)度為64字節(jié))依次傳送各個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù),控制器把上位 機(jī)傳來的數(shù)據(jù)存儲(chǔ)在控制器的數(shù)據(jù)存儲(chǔ)器中。當(dāng)打標(biāo)數(shù)據(jù)傳輸完畢時(shí),上位機(jī)通過控 制傳輸發(fā)出數(shù)據(jù)傳輸結(jié)束請(qǐng)求,告訴控制器打標(biāo)數(shù)據(jù)已傳輸完畢,等待脫機(jī)工作。激光打標(biāo)控制器固件是固化到EZ-USB代碼區(qū)的底層程序,可以用匯編語言或 C51編寫,它主要完成USB協(xié)議處理與數(shù)據(jù)交換,配置控制器,實(shí)現(xiàn)與計(jì)算機(jī)的USB 通信以及輸出打標(biāo)數(shù)據(jù)等功能。固件是USB設(shè)備開發(fā)的重點(diǎn)和難點(diǎn),要對(duì)固件進(jìn)行 設(shè)計(jì),就必須既熟悉USB協(xié)議,又了解USB接口控制器芯片的內(nèi)部硬件資源,還得 有匯編語言或C51的編程經(jīng)驗(yàn)。固件既要實(shí)現(xiàn)USB設(shè)備與主機(jī)的USB傳輸,又要實(shí) 現(xiàn)USB設(shè)備的功能,因此它的性能直接決定USB通信的實(shí)際傳輸速度和USB設(shè)備 的性能。由于使用了EZ-USB芯片,廠方提供了控制器程序框架和通用驅(qū)動(dòng)程序,大 大加快了程序開發(fā)的進(jìn)度,以及開發(fā)程序的難度。固件程序框架要完成EZ-USB的初始化、處理標(biāo)準(zhǔn)USB設(shè)備請(qǐng)求和自定義設(shè)備 請(qǐng)求以及USB掛起時(shí)的電源管理,而控制器功能的實(shí)現(xiàn)由固件的打標(biāo)數(shù)據(jù)傳輸、打 標(biāo)數(shù)據(jù)輸出、人機(jī)接口等三個(gè)功能模塊來完成??刂破鞴碳某绦蚩蚣芰鞒虉D如圖10所示。EZ-USB上電復(fù)位后,程序框架首 先初始化所有的內(nèi)部狀態(tài)變量,然后調(diào)用用戶初始化函數(shù)TD—Init(),初始化用戶的全 局狀態(tài)變量,并同時(shí)打開中斷。當(dāng)完成上面的任務(wù)后,EZ-USB固件程序就每隔1秒 進(jìn)行一次設(shè)備重枚舉直到端點(diǎn)0接收到一個(gè)SETUP包為止。 一旦EZ-USB收到SETUP 包,固件程序框架就開始進(jìn)行任務(wù)分配。任務(wù)分配就是依次重復(fù)地執(zhí)行下面的過程1.判斷是否有鍵按下,如果有,則調(diào)用人機(jī)接口函數(shù)Key—Display()。函數(shù) Key—Display()的任務(wù)是對(duì)按鍵進(jìn)行判斷,分析其功能,并對(duì)其進(jìn)行相應(yīng)的處理,如 選擇打標(biāo)文件、設(shè)定打標(biāo)參數(shù)、刪除打標(biāo)文件等,并通過LCD顯示模塊對(duì)其相應(yīng)的 信息進(jìn)行顯示。2.調(diào)用用戶函數(shù)TD—Poll()。用戶函數(shù)TD—Poll()就是打標(biāo)數(shù)據(jù)USB 傳輸固件模塊,其任務(wù)是接收計(jì)算機(jī)通過USB總線傳輸?shù)紼Z-USB批量傳輸端點(diǎn)的 打標(biāo)數(shù)據(jù),并根據(jù)控制器的工作模式(聯(lián)機(jī)工作或脫機(jī)工作)來決定是把它們暫時(shí)存 儲(chǔ)在控制器的緩沖器中還是存儲(chǔ)在打標(biāo)文件的存儲(chǔ)空間中。3.判斷是否有設(shè)備請(qǐng)求, 如果有,則分析該請(qǐng)求并做出相應(yīng)的操作??刂破鞴碳绦虿坏獙?duì)USB標(biāo)準(zhǔn)設(shè)備 請(qǐng)求做出響應(yīng),還要對(duì)自定義設(shè)備請(qǐng)求做出相應(yīng)的處理。在打標(biāo)數(shù)據(jù)傳輸之前,計(jì)算
機(jī)還要向控制器傳輸一些控制命令,如查詢控制器狀態(tài)、控制器復(fù)位、選擇打標(biāo)方式 以及傳輸打標(biāo)延時(shí)參數(shù)和激光功率參數(shù)等,這些信號(hào)都以自定義設(shè)備請(qǐng)求的形式通過 SETUP包傳輸給控制器,從而達(dá)到對(duì)控制器進(jìn)行控制的目的。在聯(lián)機(jī)工作模式的情 況下,當(dāng)打標(biāo)數(shù)據(jù)傳輸?shù)揭欢〝?shù)量時(shí),計(jì)算機(jī)通過SETUP包發(fā)出開始打標(biāo)指令,啟 動(dòng)TimerO開始打標(biāo)輸出,當(dāng)一個(gè)文件的打標(biāo)數(shù)據(jù)傳輸完畢后,計(jì)算機(jī)通過SETUP包 發(fā)出數(shù)據(jù)傳輸完畢指令,使控制器能夠正常結(jié)束打標(biāo)操作。如果打標(biāo)需要中途停止, 計(jì)算機(jī)通過SETUP包發(fā)出放棄打標(biāo)請(qǐng)求,使打標(biāo)過程中止。4.判斷是否需要初始化 Timer0,如果需要,則調(diào)用Tirner0的初始化函數(shù)TimerOjnit()。每一個(gè)打標(biāo)文件輸 出之前都要對(duì)TimerO進(jìn)行初始化。初始化的操作包括設(shè)定TimerO的工作模式,計(jì)數(shù) 數(shù)值、打開TimerO中斷等。5.判斷USB內(nèi)核是否接收到USB掛起信號(hào)。如果接收 到,貝ij調(diào)用用戶函數(shù)TD—Suspend(),此函數(shù)可使設(shè)備處于低功耗狀態(tài)并返回TRUE 或FALSE。當(dāng)TD_Suspend()返回為TRUE時(shí),再檢測(cè)是否發(fā)生USB喚醒事件,如 果未檢測(cè)到,則處理器進(jìn)入掛起狀態(tài),如果檢測(cè)到,則調(diào)用用戶函數(shù)TD—Resume(), 對(duì)處理器進(jìn)行重啟,程序繼續(xù)運(yùn)行。如果從TD一Suspend()函數(shù)返回為FALSE,則程 序繼續(xù)運(yùn)行。打標(biāo)數(shù)據(jù)輸出由TimerO的時(shí)鐘中斷服務(wù)程序來完成的。打標(biāo)數(shù)據(jù)傳輸固件模塊TD一Poll()主要完成接收通過USB總線傳輸過來的打標(biāo) 數(shù)據(jù)的任務(wù),其執(zhí)行過程的流程圖如圖9所示。固件程序首先對(duì)變量進(jìn)行初始化,然后根據(jù)通過控制傳輸發(fā)送的設(shè)置工作模式請(qǐng) 求分析打標(biāo)文件的工作模式,判斷是聯(lián)機(jī)矢量打標(biāo)、聯(lián)機(jī)點(diǎn)陣打標(biāo)、脫機(jī)矢量打標(biāo)和 脫機(jī)點(diǎn)陣打標(biāo)中的哪一種。當(dāng)打標(biāo)文件的工作模式為聯(lián)機(jī)矢量打標(biāo)時(shí),固件程序按順序執(zhí)行如下過程1. 判斷EZ-USB的批量傳輸端點(diǎn)0UT2(假設(shè)接收打標(biāo)數(shù)據(jù)的批量傳輸端點(diǎn)為 OUT2端點(diǎn))有沒有打標(biāo)數(shù)據(jù)。如果OUT2端點(diǎn)沒有打標(biāo)數(shù)據(jù),則直接從TD—PoU() 函數(shù)返回到固件的程序框架,執(zhí)行程序框架中其他的語句和函數(shù)。2. 判斷緩沖器中暫存的打標(biāo)數(shù)據(jù)是否超過16KB,并且判斷正在打標(biāo)的標(biāo)志變量 MarkFlag的值是否等于0。當(dāng)這兩個(gè)條件同時(shí)滿足時(shí),就啟動(dòng)TimerO開始計(jì)時(shí),并 且把1賦值給MarkFlag,以表明打標(biāo)正在進(jìn)行中,當(dāng)TimerO計(jì)時(shí)時(shí)間到時(shí)就產(chǎn)生 TimerO中斷,進(jìn)行打標(biāo)數(shù)據(jù)輸出。3. 判斷緩沖器是否己經(jīng)存滿打標(biāo)數(shù)據(jù)。為了避免打標(biāo)數(shù)據(jù)的丟失,在往緩沖器 存打標(biāo)數(shù)據(jù)之前要判斷緩沖器是否己經(jīng)存滿數(shù)據(jù)。如果緩沖器已滿,則進(jìn)入等待狀態(tài),
直到有打標(biāo)數(shù)據(jù)輸出使緩沖器空出一個(gè)緩沖單元為止。4. 從OUT2端點(diǎn)取一個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)存入緩沖器,然后使緩沖器輸入指針 指向下一個(gè)緩沖單元,再使計(jì)數(shù)器i的值增加5。 i用來計(jì)數(shù)已從OUT2端點(diǎn)取走數(shù)據(jù) 的字節(jié)數(shù),i的值加5是因?yàn)槭噶看驑?biāo)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)由5個(gè)字節(jié)構(gòu)成。5. 比較i值和OUT2端點(diǎn)的字節(jié)計(jì)數(shù)器OUT2BC值的大小。如果i小于OUT2BC, 說明OUT2端點(diǎn)的數(shù)據(jù)還沒取完,還得繼續(xù)從前面的過程2開始執(zhí)行,把OUT2端點(diǎn) 中下一個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)存到緩沖器中。如果i大于OUT2BC,說明OUT2端點(diǎn)的 數(shù) 據(jù) 已 經(jīng) 取 完 , 然 后 寫0到OUT2BC中,再返回到固件的程序框架。寫0到OUT2BC中是為了使OUT2 端點(diǎn)在下次調(diào)用TD—Poll()函數(shù)時(shí)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)包。當(dāng)打標(biāo)文件的工作模式為聯(lián)機(jī)點(diǎn)陣打標(biāo)時(shí),打標(biāo)數(shù)據(jù)的傳輸過程與聯(lián)機(jī)矢量打標(biāo) 的數(shù)據(jù)傳輸過程基本相同。由于點(diǎn)陣打標(biāo)的插補(bǔ)點(diǎn)數(shù)據(jù)由4個(gè)字節(jié)構(gòu)成,因而每次取 完一個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)后,計(jì)數(shù)器i的值增加4。當(dāng)打標(biāo)文件的工作模式為脫機(jī)矢量打標(biāo)和脫機(jī)點(diǎn)陣打標(biāo)時(shí),它們的打標(biāo)數(shù)據(jù)傳輸 過程都相同,固件程序按順序執(zhí)行下面的過程1. 判斷EZ-USB的批量傳輸端點(diǎn)OUT2有沒有打標(biāo)數(shù)據(jù)。如果OUT2端點(diǎn)沒有 打標(biāo)數(shù)據(jù),則直接執(zhí)行過程5。2. 判斷數(shù)據(jù)開始傳輸標(biāo)志變量StartFlag的值是否等于0。如果StartFlag的值等 于0,則調(diào)用Start_Addr()函數(shù)。Start—Addr()函數(shù)主要實(shí)現(xiàn)把通過控制傳輸?shù)淖远x 設(shè)備請(qǐng)求傳輸過來的打標(biāo)參數(shù)和打標(biāo)類型存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,設(shè)定打標(biāo)文件存儲(chǔ)的 起始地址,并使打標(biāo)數(shù)據(jù)輸入指針指向起始地址等功能。當(dāng)程序從Start—Addr()函數(shù) 返回后,使變量StartFlag的值為1,以表明打標(biāo)數(shù)據(jù)已經(jīng)開始傳輸。如果變量StartFlag 的值不等于0,則說明已經(jīng)開始打標(biāo)數(shù)據(jù)的傳輸,不需要調(diào)用Start一Addr()函數(shù),直 接執(zhí)行過程3。3. 從OUT2端點(diǎn)取1個(gè)字節(jié)的打標(biāo)數(shù)據(jù)存入打標(biāo)數(shù)據(jù)輸入指針指向的存儲(chǔ)單元, 然后使打標(biāo)數(shù)據(jù)輸入指針指向下一個(gè)存儲(chǔ)單元,接著使計(jì)數(shù)器i的值加1。4. 比較i值和OUT2端點(diǎn)的字節(jié)計(jì)數(shù)器OUT2BC值的大小。如果i小于OUT2BC, 說明OUT2端點(diǎn)的數(shù)據(jù)還沒取完,還得繼續(xù)執(zhí)行前面取打標(biāo)數(shù)據(jù)的步驟,把OUT2 端點(diǎn)中下一個(gè)字節(jié)的打標(biāo)數(shù)據(jù)存到存儲(chǔ)器中。如果i大于OUT2BC,說明OUT2端點(diǎn) 的數(shù)據(jù)已經(jīng)取完,然后寫0到OUT2BC中,使OUT2端點(diǎn)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)包。5. 判斷打標(biāo)數(shù)據(jù)傳輸完畢標(biāo)志變量DataFinish的值是否等于0。如果DataFinish的值等于0,則說明打標(biāo)數(shù)據(jù)傳輸完畢,然后調(diào)用End一Addr()函數(shù),設(shè)定打標(biāo)文件的 結(jié)束地址,當(dāng)程序從End一Addr()函數(shù)返回后,再使變量DataFinish的值為1,使變量 StartFlag的值為0,這樣就使這兩個(gè)變量的值恢復(fù)到打標(biāo)數(shù)據(jù)傳輸之前的初始狀態(tài), 然后返回到固件的程序框架,準(zhǔn)備下一次打標(biāo)數(shù)據(jù)的傳輸。如果變量DataFinish的值 不等于0,則說明打標(biāo)數(shù)據(jù)還沒有傳輸完畢,然后返回到固件的程序框架,準(zhǔn)備接收 打標(biāo)數(shù)據(jù)的下一次USB批量傳輸。打標(biāo)數(shù)據(jù)輸出固件模塊是Timer0的中斷服務(wù)程序,主要完成把存儲(chǔ)在緩沖器或 數(shù)據(jù)存儲(chǔ)器中的打標(biāo)數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換輸出的任務(wù),其執(zhí)行過程的流程圖如圖11所 示。當(dāng)TimerO計(jì)時(shí)時(shí)間到時(shí),產(chǎn)生TimerO中斷,進(jìn)入Timer0的中斷服務(wù)程序。固 件程序首先停止TimerO計(jì)時(shí),然后分析打標(biāo)文件的工作模式,判斷是聯(lián)機(jī)矢量打標(biāo)、 聯(lián)機(jī)點(diǎn)陣打標(biāo)、脫機(jī)矢量打標(biāo)和脫機(jī)點(diǎn)陣打標(biāo)中的哪一種。當(dāng)打標(biāo)文件的工作模式為聯(lián)機(jī)矢量打標(biāo)時(shí),中斷服務(wù)程序按順序執(zhí)行如下過程1. 判斷緩沖器是否為空。如果緩沖器為空,說明其中沒有打標(biāo)數(shù)據(jù),則關(guān)掉激 光,再判斷打標(biāo)數(shù)據(jù)傳輸完畢標(biāo)志變量DataFinish的值是否等于0。如果DataFinish 等于0,就說明打標(biāo)數(shù)據(jù)已經(jīng)輸出完畢,則使變量MarkFlag等于O,變量DataFinish 等于1,并使打標(biāo)輸入和輸出指針都復(fù)位,這樣使它們都恢復(fù)到打標(biāo)輸出之前的狀態(tài), 然后中斷返回,等待下一次打標(biāo)輸出。如果DataFinish不等于O,說明打標(biāo)數(shù)據(jù)還沒 有輸出完畢,則啟動(dòng)TimerO計(jì)時(shí),然后中斷返回,等待再次進(jìn)行打標(biāo)輸出。2. X軸的定位控制信號(hào)送入DAC1, Y軸的定位控制信號(hào)送入DAC2,然后同時(shí) 啟動(dòng)DAC1和DAC2。3. 激光功率信號(hào)送入DAC3,然后啟動(dòng)DAC3。4. 輸出聲光Q開關(guān)控制信號(hào),然后使打標(biāo)輸出指針指向下一個(gè)緩沖單元。5. 啟動(dòng)TimerO計(jì)時(shí),然后中斷返回,等待下一個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)輸出。 當(dāng)打標(biāo)文件的工作模式為聯(lián)機(jī)點(diǎn)陣打標(biāo)時(shí),中斷服務(wù)程序執(zhí)行過程與工作模式為聯(lián)機(jī)矢量打標(biāo)時(shí)基本相同,不同的是聯(lián)機(jī)點(diǎn)陣打標(biāo)輸出時(shí),用在判斷緩沖器是否已滿的過程之前的關(guān)閉激光和在啟動(dòng)DAC3之后打開激光這兩個(gè)操作代替聯(lián)機(jī)矢量打標(biāo)輸出時(shí)的聲光Q開關(guān)控制信號(hào)輸出操作。當(dāng)打標(biāo)文件的工作模式為脫機(jī)矢量打標(biāo)時(shí),中斷服務(wù)程序按順序執(zhí)行如下過程 1.判斷正在打標(biāo)標(biāo)志變量MarkFlag的值是否等于0。如果MarkFlag的值等于0,說明這次打標(biāo)數(shù)據(jù)輸出是這個(gè)打標(biāo)文件的第一次輸出,則調(diào)用Set—Pointer()函數(shù)。Set一Pointer()函數(shù)主要實(shí)現(xiàn)從數(shù)據(jù)存儲(chǔ)器中讀取打標(biāo)文件的起始地址并把它賦給打標(biāo) 輸出指針的功能。然后再使變量MarkHag的值為1,以表明打標(biāo)數(shù)據(jù)正在輸出。2. 判斷打標(biāo)數(shù)據(jù)是否輸出完畢。如果輸出完畢,則使變量MarkFlag的值為0, 然后關(guān)閉激光,再中斷返回,等待下一個(gè)打標(biāo)文件的輸出。3. X軸的定位控制信號(hào)送入DAC1, Y軸的定位控制信號(hào)送入DAC2,然后同時(shí) 啟動(dòng)DAC1和DAC2。4. 激光功率信號(hào)送入DAC3,然后啟動(dòng)DAC3。5. 輸出聲光Q開關(guān)控制信號(hào),然后使打標(biāo)輸出指針指向下一個(gè)存儲(chǔ)單元。6. 啟動(dòng)TimerO計(jì)時(shí),然后中斷返回,等待下一個(gè)插補(bǔ)點(diǎn)的打標(biāo)數(shù)據(jù)輸出。 當(dāng)打標(biāo)文件的工作模式為脫機(jī)點(diǎn)陣打標(biāo)時(shí),中斷服務(wù)程序執(zhí)行過程與工作模式為脫機(jī)矢量打標(biāo)時(shí)基本相同,不同的是脫機(jī)點(diǎn)陣打標(biāo)輸出時(shí),用判斷標(biāo)志變量MarkFlag 的值是否等于0的過程之前的關(guān)閉激光和啟動(dòng)DAC3之后打開激光這兩個(gè)操作代替脫 機(jī)矢量打標(biāo)輸出時(shí)的聲光Q開關(guān)控制信號(hào)輸出操作。人機(jī)接口固件模塊Key一Display()函數(shù)主要在脫機(jī)使用時(shí)完成對(duì)數(shù)據(jù)存儲(chǔ)器中打 標(biāo)文件的選擇、打標(biāo)參數(shù)的修改、刪除其中的打標(biāo)文件、開始打標(biāo)、放棄打標(biāo)、控制 器復(fù)位等操作,從而實(shí)現(xiàn)對(duì)控制器的控制,其執(zhí)行過程的流程圖如圖12所示。固件模塊首先對(duì)變量進(jìn)行初始化,然后根據(jù)輸入的鍵值分析其要實(shí)現(xiàn)的功能,確 定是選擇打標(biāo)文件、修改打標(biāo)參數(shù)、刪除打標(biāo)文件等3種操作中的哪一種。當(dāng)輸入的功能鍵是選擇打標(biāo)文件時(shí),首先判斷有沒有文件編號(hào)輸入,如果沒有就 一直等待,直到有文件編號(hào)輸入為止。如果有文件編號(hào)輸入,則判斷文件選擇是否確 認(rèn),如果沒有確認(rèn),就直接從函數(shù)返回。如果文件選擇確認(rèn),就指定選擇的文件編號(hào), 接著再把選擇的文件編號(hào)通過LCD顯示模塊顯示出來,然后從函數(shù)返回到固件的程 序框架。當(dāng)輸入的功能鍵是修改打標(biāo)參數(shù)時(shí),首先選擇要修改的參數(shù)。如果選擇的是修改 激光功率首先判斷有沒有參數(shù)輸入,如果沒有參數(shù)輸入就一直等待,直到有參數(shù)輸 入為止;如果有參數(shù)輸入,則判斷修改是否確認(rèn),如果修改沒有確認(rèn),就直接從函數(shù) 返回,如果修改確認(rèn),就保存修改的打標(biāo)參數(shù)并通過LCD顯示模塊顯示出來,接著 再返回到固件的程序框架。如果選擇的是修改延時(shí)參數(shù),其執(zhí)行的過程和修改激光功 率的過程相同。當(dāng)輸入的功能鍵是刪除打標(biāo)文件時(shí),首先選擇刪除方式。如果選擇的是刪除最后 一個(gè)文件首先判斷刪除是否確認(rèn),如果沒有確認(rèn),就直接從函數(shù)返回;如果刪除得
到確認(rèn),就從數(shù)據(jù)存儲(chǔ)器中清除編號(hào)最后的一個(gè)文件的信息,然后再通過LCD顯示 模塊顯示"刪除完畢"信息,最后再?gòu)暮瘮?shù)返回到固件的程序框架。如果選擇的是刪 除全部文件,其執(zhí)行過程基本與刪除最后一個(gè)文件的過程相同,不同的是,當(dāng)刪除確 認(rèn)后,就把所有文件的信息從數(shù)據(jù)存儲(chǔ)器中刪除。另外,開始打標(biāo)、放棄打標(biāo)、控制器復(fù)位等功能鍵直接與EZ-USB的外部中斷輸入引 腳相連,它們的功能實(shí)現(xiàn)是通過各自的中斷服務(wù)程序來完成。
權(quán)利要求1.一種基于USB接口的打標(biāo)控制器,其特征在于,其包括USB接口控制器單元、數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、D/A轉(zhuǎn)換單元、邏輯控制單元和人機(jī)接口單元;其中USB接口控制器單元,支持USB1.1規(guī)范,具有獨(dú)立的8位數(shù)據(jù)總線和16位地址總線,有利于芯片的外圍電路擴(kuò)展;通過數(shù)據(jù)總線與數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元及邏輯控制單元電信號(hào)連接;通過地址總線與數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、邏輯控制單元、D/A轉(zhuǎn)換單元及人機(jī)接口單元的LCD顯示模塊電信號(hào)連接;數(shù)據(jù)存儲(chǔ)單元,在聯(lián)機(jī)使用模式時(shí)作為本打標(biāo)控制器的數(shù)據(jù)緩沖區(qū),暫存上位機(jī)傳輸過來的打標(biāo)數(shù)據(jù),在脫機(jī)使用模式時(shí)存儲(chǔ)打標(biāo)文件的打標(biāo)數(shù)據(jù);與邏輯控制單元電信號(hào)連接;程序存儲(chǔ)單元,存儲(chǔ)USB接口控制器單元的固件程序;與邏輯控制單元電信號(hào)連接;D/A轉(zhuǎn)換單元,具有3路D/A轉(zhuǎn)換通道,對(duì)打標(biāo)數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換,分別輸出模擬電壓信號(hào)去控制振鏡X軸、Y軸以及激光功率;與邏輯控制單元電信號(hào)連接;邏輯控制單元,對(duì)USB接口控制器單元的地址進(jìn)行譯碼,產(chǎn)生D/A轉(zhuǎn)換單元、數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、人機(jī)接口單元的選通信號(hào),對(duì)數(shù)據(jù)存儲(chǔ)器的高位地址進(jìn)行鎖存,為外圍電路提供I/O口;人機(jī)接口單元,由鍵盤和LCD顯示模塊組成,在脫機(jī)使用時(shí)對(duì)控制器進(jìn)行打標(biāo)文件選取、設(shè)定打標(biāo)參數(shù)、刪除打標(biāo)文件等操作;與邏輯控制單元電信號(hào)連接。
2. 如權(quán)利要求1所述的基于USB接口的打標(biāo)控制器,其特征在于所述D/A轉(zhuǎn) 換單元中控制振鏡X軸和控制振鏡Y軸的2路D/A同時(shí)轉(zhuǎn)換,其輸出經(jīng)過運(yùn)算放大 器以使其輸出電壓信號(hào)與振鏡的輸入電壓信號(hào)兼容;控制激光功率的D/A電路只有1 路數(shù)/模轉(zhuǎn)換通道,為與8位數(shù)據(jù)總線兼容的12位電壓輸出型DAC,其電壓輸出信 號(hào)與激光功率控制信號(hào)要求的輸入電壓兼容。
3. 如權(quán)利要求1或2所述的基于USB接口的打標(biāo)控制器,其特征在于所述人機(jī) 接口單元中,鍵盤的接口方式采用獨(dú)立方式,每個(gè)獨(dú)立按鍵以一對(duì)-一的方式直接接到 I/O輸入線上,LCD顯示采用點(diǎn)陣圖形液晶顯示模塊。
專利摘要基于USB接口的打標(biāo)控制器,屬于激光打標(biāo)機(jī)的打標(biāo)控制器,目的是克服現(xiàn)有技術(shù)的缺陷,既滿足客戶對(duì)復(fù)雜圖形打標(biāo)的要求,又滿足對(duì)簡(jiǎn)單圖案打標(biāo)的要求,同時(shí)調(diào)整、修改、安裝方便,工業(yè)現(xiàn)場(chǎng)運(yùn)行穩(wěn)定可靠,即插即用。本實(shí)用新型包括USB接口控制器單元、數(shù)據(jù)存儲(chǔ)單元、程序存儲(chǔ)單元、D/A轉(zhuǎn)換單元、邏輯控制單元和人機(jī)接口單元;本實(shí)用新型既能與計(jì)算機(jī)聯(lián)機(jī)使用,又能脫離計(jì)算機(jī)單獨(dú)使用,其中的打標(biāo)內(nèi)容還可以由計(jì)算機(jī)通過USB接口隨意改寫,并可以通過控制器上的鍵盤和LCD顯示對(duì)其進(jìn)行編輯、設(shè)定打標(biāo)參數(shù)等操作。
文檔編號(hào)B41J29/38GK201017305SQ20062015755
公開日2008年2月6日 申請(qǐng)日期2006年11月24日 優(yōu)先權(quán)日2006年11月24日
發(fā)明者應(yīng)花山, 廖洪海, 洵 李, 兵 胡, 飛 郭 申請(qǐng)人:華中科技大學(xué)