1 引言
光(guang)柵(zha)數(shu)顯(xian)係(xi)統(tong)主(zhu)要(yao)用(yong)於(yu)普(pu)通(tong)機(ji)床(chuang),可(ke)直(zhi)接(jie)顯(xian)示(shi)機(ji)床(chuang)加(jia)丁(ding)的(de)長(chang)度(du)值(zhi),有(you)助(zhu)於(yu)提(ti)高(gao)加(jia)工(gong)精(jing)度(du)和(he)效(xiao)率(lv)。目(mu)前(qian)國(guo)內(nei)市(shi)場(chang)上(shang)的(de)光(guang)柵(zha)數(shu)顯(xian)係(xi)統(tong)大(da)多(duo)采(cai)用(yong)國(guo)外(wai)集(ji)成(cheng)電(dian)路(lu)實(shi)現(xian),研(yan)發(fa)成(cheng)本(ben)高(gao),且(qie)不(bu)便(bian)於(yu)操(cao)作(zuo)人(ren)員(yuan)使(shi)用(yong)。
針對這種狀況,研發了基於MCU+CPLD的新型光柵數顯係統。該係統具有計數精度高、成本低、操作方便以及升級快等特點,能夠處理高達5 MHz/s的正交脈衝,並在掉電時有效存儲當前長度值,其數碼管可顯示關鍵的長度值,點陣式液晶屏還可顯示相關的提示信息。
2 係統工作原理
利用CPLD實現正交脈衝處理邏輯電路,而可逆計數器則用於處理計數光柵尺輸出的正交脈衝,CPLD的高速並行處理能力可保證光柵尺輸出信號無遺漏采樣,從而確保計數的可靠性。可逆計數器的值通過MCU一係列運算後轉換為機床加工的長度值、MCU再將其長度值回送至CPLD並在數碼管上顯示。
此外,CPLD還具有7×8鍵盤按鍵檢測和去抖功能,將處理後的可靠按鍵送至MCU。MCU主要用於液晶屏的顯示控製、掉電數據保存,以及複雜的數學運算。
3 正交脈衝信號采集處理
3.1 正交脈衝采集
光柵尺輸出一組正交脈衝信號,即相位差為90°的兩路方波,如圖2所示。當光柵尺正向移動一個柵距時,光柵尺輸出一個00―01一11―10―00循環,A路方波相位超前於B路90°;當光柵尺反向移動一個柵距時,光柵傳感器輸出一個00―10一11一01一00循環,A路方波相位滯後B路90°。
分析A,B兩路方波的邏輯狀態發現A,B兩路方波在任意時刻下隻有一路信號發生邏輯狀態變化。如果在邏輯狀態變化前A,B兩路的狀態相同,那麼變化後的邏輯狀態肯定相異;如果變化前A,B兩路方波邏輯狀態相異,那麼變化後邏輯狀態肯定相同。隻需對這兩路信號異或,就能提取光柵尺運動的方向信號updown以及與運動距離成正比的計數脈衝cp。光柵尺移動一個柵距將輸出4個cp脈衝,係統測量的最小分辨率提高至1/4柵距,通常稱為四裂相或四倍頻。CPLD在每個clk的上升沿檢測A,B兩路方波的狀態,首先分別對當前檢測的狀態A0,B0和上次檢測的狀態A1,B1相異或,然後將兩次異或值再異或。如果最後異或值為1,則說明A,B兩路方波發生變化,則向可逆計數器輸入一個高電平寬度為1個clk周期的計數脈衝cp,
3.2 可逆計數器
將提取的方向信號updown和計數脈衝cp輸入至可逆計數器,實現對光柵尺輸出的正交脈衝計數。可逆計數器模塊的VHDL程序如下:
3.3 clk的取值
由於CPLD的采樣時鍾clk必須大於8倍光柵尺輸出的正交脈衝,因此係統不會丟失信號。該係統設計使用40 MHz有源晶體振蕩器作為CPLD的采樣時鍾源,可記錄的最大光柵傳感器輸出信號頻率為5 MHz。如果使用50線/mm的光柵尺,經過CPLD的四裂相細分後,計算該光柵尺接該係統的最大不漏數加工速度為20 μmx5 MHz=100 m/s,最小分辨率為5μm。遠遠超出機床運行的極限速度,完全滿足實際需求。
3.4 EPM240簡介
選用Altera公司的EPM240作為CPLD,EPM240是MAX Ⅱ係列器件中的一員。MAX Ⅱ CPLD係列的體係結構使其在所有CPLD係列器件的單位I/O引腳的功耗和成本最低;支持高達300 MHz的內部時鍾頻率,麵向通用低密度邏輯應用,MAX Ⅱ CPLD可替代高功耗和高成本 ASSP 以及標準邏輯CPLD。
EPM240含有240個邏輯單元(LE),等效於192個宏單元;8 192 bit的用戶Flash存儲器,可滿足用戶小容量信息存儲要求:最大用戶I/O數為80,最快速度為
4.5 ns,完全滿足係統設計要求。
4 MCU掉電數據存儲
掉(diao)電(dian)數(shu)據(ju)存(cun)儲(chu)是(shi)係(xi)統(tong)設(she)計(ji)的(de)另(ling)一(yi)重(zhong)要(yao)功(gong)能(neng),要(yao)求(qiu)高(gao)可(ke)靠(kao)性(xing)。係(xi)統(tong)在(zai)掉(diao)電(dian)時(shi)應(ying)保(bao)存(cun)光(guang)柵(zha)尺(chi)的(de)當(dang)前(qian)位(wei)置(zhi)信(xin)息(xi),下(xia)次(ci)開(kai)機(ji)時(shi)通(tong)過(guo)調(tiao)用(yong)上(shang)次(ci)掉(diao)電(dian)時(shi)保(bao)存(cun)的(de)位(wei)置(zhi)信(xin)息(xi)恢(hui)複(fu)係(xi)統(tong)。因(yin)此(ci),掉(diao)電(dian)瞬(shun)間(jian),掉(diao)電(dian)報(bao)警(jing)電(dian)路(lu)將(jiang)迅(xun)速(su)響(xiang)應(ying).向MCU_ 發出報警信號;MCU檢測到報警信號後,馬上進行相應處理,將當時光柵尺的當前位置信息存入EEPROM。
為了提高MCU的掉電響應速度,增強係統可靠性,係統設計采用新的增強型51單片機STC-89C516RD。該器件具有1 KB RAM和高達64 KB大容量ROM,ISP 功能,指令周期有6clock和12clock兩種可選模式。使用20 MHz晶體振蕩器,采用6clock模式燒寫時,單指令周期的程序執行時問僅為0.3μs,比普通51單片機在最高24 MHz晶體振蕩器下的運行速度要快得多。因此,大大縮短了掉電數據存儲程序的執行時間。
4.1 掉電報警電路
選用超小型高精度電壓檢測器S80848,內部檢測電壓固定為4.8 V,精度為±2%,最大響應時間為60μs。S80848采用標準5 V供電,電源正常時輸出高電平;當電源電壓降至4.8 V時,則輸出低電平。將S80848的輸出腳連接至MCU 的INT0,並將MCU的INT0設置為電平觸發。因此,電源電壓隻要低於4.8 V就會使MCU進入INT0中斷,MCU在中斷程序中保存位置信息。
4.2 EEPROM選取
當MCU對EEPROM的寫操作完成後,EEP-ROM需用10 ms的最大自寫入時間將信息寫入存儲單元。為了使用更多的時間用於EEPROM自寫入,選用低壓EEPROM,即AT24C64―2.7 V,其工作電壓為5.5 V~2.7 V,容量為64 KB,每頁為32 B,最大寫入次數為1 000 000 。
4.3 掉電時間計算
選用工作電壓為4.5 V~5.5 V的STC89C516RD,當電源電壓降至4.5 V以下時,MCU不能可靠工作。MCU的INT0的中斷服務程序隻能使用電源電壓從4.8 V降至4.5 V的de這zhe段duan時shi間jian,所suo有you處chu理li必bi須xu在zai該gai段duan時shi間jian內nei完wan成cheng。因yin此ci中zhong斷duan程cheng序xu設she計ji時shi應ying盡jin量liang考kao慮lv使shi其qi執zhi行xing時shi間jian最zui短duan,中zhong斷duan應ying先xian將jiang所suo有you存cun儲chu的de數shu據ju存cun入ru一yi個ge數shu組zu,然ran後hou將jiang該gai數shu組zu的de所suo有you元yuan素su寫xie入ruAT24C64,當然該數組的元素數必須小於AT24C64一頁的長度.即必須小於32 B。
當輸出電壓為5 V時,最大電流為,Imax=0.8 A,等效負載R=5/I=6.25 Ω,與5 V電源並聯的電容C=4700μF,則係統時間常數為丁:τ=RC=0.029 s。設發生掉電t=0,根據公式u(t)=Vcc exp(一t/τ)=5 exp(一t/0.029)可知:t=1 183 μs時,電源電壓Vcc從5 V降至4.8 V;t=3 055μs時,Vcc降至4.5 V;t=17 869μs時,Vcc降到2.7 V。MCU的中斷服務程序時間為3 055-1 183=1872μs,故大於實測中斷服務程序時間1 350μs;EEPROM自寫入有效時間為17 869-3 055=14 814μs,故完全滿足EEPROM寫入要求。
4.4 中斷服務程序
為了避免MCU頻繁寫入EEPROM,使用次數超出最大有效寫入次數。中斷程序對中斷輸入引腳上的電平進行必要濾波。濾波算法為:係統進入中斷程序後,首先關閉中斷,然後連續10次判斷INT0的(de)電(dian)平(ping),如(ru)果(guo)每(mei)次(ci)判(pan)斷(duan)得(de)到(dao)的(de)電(dian)平(ping)值(zhi)都(dou)為(wei)低(di),則(ze)繼(ji)續(xu)往(wang)下(xia)執(zhi)行(xing)中(zhong)斷(duan)服(fu)務(wu)程(cheng)序(xu),隻(zhi)要(yao)有(you)一(yi)次(ci)為(wei)高(gao)則(ze)立(li)即(ji)退(tui)出(chu)中(zhong)斷(duan)服(fu)務(wu)程(cheng)序(xu)。完(wan)成(cheng)寫(xie)入(ru)數(shu)據(ju),要(yao)確(que)保(bao)INT0上的低電平解除後再返回中斷,否則等待,直至低電平解除。中斷服務程序流程圖如圖5所示。
5 結束語
詳細介紹光柵數顯係統設計,采用CPLD可大大簡化係統硬件設計,降低係統成本,增強係統可靠性和靈活性。選用STC89C516RD,可避免擴展外部存儲器,從而簡化單片機的外圍電路設計。