全數(shù)字信號發(fā)生器的硬件設(shè)計
工業(yè)設(shè)備常用頻率量信號作為采集量,如使用光電編碼器采信數(shù)據(jù),當(dāng)調(diào)試使用頻率信號的設(shè)備時,由于機(jī)械等部份還未動作,無法采集信號,因此需要使用信號發(fā)生器。對于在工業(yè)現(xiàn)場使用的設(shè)備,其要求與實(shí)驗(yàn)室設(shè)備并不相同,如果直接使用實(shí)驗(yàn)室中所用的標(biāo)準(zhǔn)信號發(fā)生器,往往會覺得其體積過大、價格太高、使用較麻煩等。工業(yè)現(xiàn)場使用的設(shè)備,其絕對精度要求并不高,關(guān)鍵要穩(wěn)定可靠,便于攜帶和使用。
一、性能分析
這個項(xiàng)目的目標(biāo)是替代工業(yè)現(xiàn)場的頻率采樣裝置,典型的如光電編碼器。通過調(diào)查,確認(rèn)最終要制作的信號發(fā)生器的性能指標(biāo)如下:
頻率范圍:0~1Hz,以0.1Hz步進(jìn),1~500Hz,以1Hz步進(jìn);波形:矩形波或方波均可;精度:頻率值的相對誤差不超過±1%;功能:(1)信號發(fā)生,信號發(fā)生器以給定的頻率輸出信號;(2)脈沖個數(shù)計數(shù),儀器可對本身已發(fā)出的脈沖個數(shù)進(jìn)行計數(shù);(3)設(shè)定值可存儲,每次上電自動調(diào)出前次設(shè)定值。
二、初步設(shè)計
在確定了性能指標(biāo)后,可以進(jìn)行初步設(shè)計,考慮其顯示、操作等方面的要求。
1、顯示部分
待設(shè)定的頻率值最高為500HZ,只要3位數(shù)碼管即可;要求對輸出脈沖計數(shù),雖未給出要求的計數(shù)值,但3位數(shù)碼管最大僅能計到999,似乎太少了一些,再考慮到該儀器以后的擴(kuò)展,如希望以后能加一些高端點(diǎn)頻(600、700、800、900、1000、2000、5000、10K等),需要更多的數(shù)碼管顯示,因此最終選擇5位數(shù)碼管顯示。
2、鍵盤部分
鍵盤有很多方案可供選擇,如工業(yè)品中常用的三鍵或四鍵方案,當(dāng)然也可以用多鍵(如市售有一些標(biāo)準(zhǔn)的12或16鍵鍵盤)等,經(jīng)過反復(fù)比較,考慮到易制作、易使用等等諸多因素,最終將鍵的個數(shù)確定為5個。
鍵盤操作方案是儀器易用性的很重要的一個方面,這并非儀器的關(guān)鍵部分,但鍵盤、顯示程序的工作量往往占據(jù)整個設(shè)計的很大的一部份。對鍵盤設(shè)計,重要的是要確定各按鍵功能,描述出各鍵的具體操作。
本儀器的鍵設(shè)計如下:
1.工作狀態(tài)描述
由轉(zhuǎn)換鍵切換兩種狀態(tài)
(1)顯示設(shè)定的頻率值
(2)顯示脈沖個數(shù)值
2.鍵定義
切換鍵 增加鍵 減少鍵 開啟/停止鍵 清除鍵
3.鍵操作描述
切換鍵:切換兩種工作狀態(tài)
增加和減少鍵:在顯示設(shè)定頻率值時按,按增加鍵、減少鍵設(shè)定頻率,范圍為0.1~500HZ,每按一次增加鍵,設(shè)定值加1,如果按著鍵不放,稍后進(jìn)入連續(xù)狀態(tài),設(shè)定值快速增加;按減少鍵,設(shè)定值減1,如果按著鍵不放,稍后進(jìn)入連續(xù)狀態(tài),設(shè)定值快速減少。當(dāng)頻率設(shè)定值小于1以后,每按一次增加或減少鍵,設(shè)定值增加或減少0.1。
開啟/停止鍵:開始/停止信號發(fā)生
清除鍵:用于清除當(dāng)前脈沖個數(shù)的計數(shù)值。
4.工作過程
開機(jī)后,信號發(fā)生器自動運(yùn)行,有信號輸出,按下“開啟/停止”鍵,則信號發(fā)生器停止工作,沒有信號輸出,再次按下“開啟/停止”鍵,則信號發(fā)生器又開始工作,繼續(xù)輸出信號。
信號燈用于指示信號發(fā)生器工作還是停止,當(dāng)有信號產(chǎn)生時,信號指示燈閃爍,信號發(fā)生器暫停工作時,信號指示燈滅。
三、硬件電路的設(shè)計
在確定了性能指標(biāo)、操作方案后,可以開始設(shè)計,首先要確定信號產(chǎn)生的方式。該信號發(fā)生器的絕對精度指標(biāo)不高,但是其要求的最低頻率低至0.1HZ,而最高分辨也要求達(dá)到0.1HZ,如果采用模擬技術(shù)難以達(dá)到,或需要付出較高代價才能做到??紤]到儀器的最高輸出頻率僅為500HZ,而且只需要提供要方波或矩形波,所以采用單片機(jī)做成全數(shù)字信號發(fā)生器。
在有了這一設(shè)計思想之后,需要確定該方案是否可行,該方案準(zhǔn)備采用 單片機(jī) 的定時器產(chǎn)生信號,由于定時器的定時時間只能是整數(shù),因此,不可避免會在一些頻率點(diǎn)上產(chǎn)生誤差,為此,用Excel對計數(shù)值、真實(shí)頻率值作了測算,部分表格如表1和表2所示,經(jīng)過測算表明,當(dāng)采用12M晶振時,絕對誤差最大約0.12HZ(492Hz處),相對誤差最大約0.024%(492Hz處),可以滿足要求,因此決定采用這一方案。當(dāng)然,這僅是理論值,考慮到單片機(jī)定時中斷的響應(yīng)時間等因素,實(shí)際的誤差肯定要比這個計算值大,但是要達(dá)到±1%的精度要求并不難,而其長期工作的穩(wěn)定性取決于晶振的穩(wěn)定度,并且晶振頻率的變化引起的輸出頻率的變化也很微小,因此其長期工作穩(wěn)定性也很好。
以下是部份測算的表格,完整的表格在本期光盤Excel文件中。
表1 較高頻率算法
理論頻率 t(ms) 真實(shí)頻率 絕對誤差 相對誤差
10 100000 10 0.00E+00 0.00E+00
11 90909 11.00001 1.00E-06 9.09E-08
12 83333 12.00005 4.00E-06 3.33E-07
13 76923 13.00001 1.00E-06 7.69E-08
14 71429 13.99992 -6.00E-06 -4.29E-07
15 66667 14.99993 -5.00E-06 -3.33E-07
16 62500 16 0.00E+00 0.00E+00
17 58824 16.99986 -8.00E-06 -4.71E-07
18 55556 17.99986 -8.00E-06 -4.44E-07
19 52632 18.99985 -8.00E-06 -4.21E-07
20 50000 20 0.00E+00 0.00E+00
表1 較低頻率算法
f(hz) t(ms) 次數(shù) 頻率值 誤差 相對誤差
0.1 10000000 5000 0.1 0.00E+00 0.00E+00
0.2 5000000 2500 0.2 0.00E+00 0.00E+00
0.3 3333333 1667 0.29994 -2.00E-04 -6.67E-04
0.4 2500000 1250 0.4 0.00E+00 0.00E+00
0.5 2000000 1000 0.5 0.00E+00 0.00E+00
0.6 1666667 833 0.60024 4.00E-04 6.67E-04
0.7 1428571 714 0.70028 4.00E-04 5.72E-04
0.8 1250000 625 0.8 0.00E+00 0.00E+00
0.9 1111111 556 0.899281 -7.99E-04 -8.88E-04
在確定了信號發(fā)生的方式以后,綜合初步設(shè)計中提出的一些技術(shù)指標(biāo)要求,進(jìn)一步確定具體的實(shí)施方案。根據(jù)以往的設(shè)計經(jīng)驗(yàn),顯示部分由 單片機(jī) 的P0口與P2口直接驅(qū)動;數(shù)據(jù)存儲則采用串行EEPROM;信號由單片機(jī)的一個I/O口輸出,并經(jīng)驅(qū)動后輸出。
經(jīng)過上述的設(shè)計后,可以確定這個儀器的框圖如圖1所示。
原理框圖出來后,選擇一款合適的機(jī)殼,然后綜合考慮按鍵、數(shù)碼管的安裝方式,以便進(jìn)行更詳細(xì)的設(shè)計。數(shù)碼管和按鍵必須安裝在印板上才能安裝到面板上,數(shù)碼管與 單片機(jī) 的連線較多,5位數(shù)碼管,需要13根線,再加上按鍵的連線共有19根,如果將單片機(jī)放在另一塊板上,必然要用大量導(dǎo)線與鍵盤顯示板連接,而大量的連線是我們不愿意做的,這不僅使得安裝困難,而且線易折斷造成故障,因此干脆將單片機(jī)也裝在同一塊板上,只留下電源和輸出電路放在另一塊板上,這樣,兩塊板間只需3根引線即可,大大降低了裝配困難,也減少了故障隱患。
整個設(shè)計的原理圖,如圖2和圖3所示。其中圖2是主板圖,提供了包括數(shù)碼管顯示驅(qū)動、鍵盤等在內(nèi)的大部份功能。
從圖中可以看到,該電路主要由這樣幾部份組成:
(1)數(shù)碼管顯示部份,由 單片機(jī) 及相關(guān)外圍電路構(gòu)成5位數(shù)碼管顯示電路;
(2)按鍵部份,按設(shè)計共有5個按鍵;
(3)EEPROM存儲器,這里選擇I2C接口的AT24C01A芯片;
(4)一只LED指示燈;
(5)輸出管腳。
以上分別需要 單片機(jī) 片機(jī)的13、5、3、1、1個引腳,因此,單片機(jī)共要用到23只管腳。
引腳數(shù)量確定后,即可初步確定主芯片的型號,這里選用40引腳的AT89C51 單片機(jī) 。如果編程中發(fā)現(xiàn)內(nèi)部資源(如片內(nèi)RAM、ROM、定時器等)不夠,可以更換為89C52等其他單片機(jī),比較靈活。
圖3是電源、輸出部分,從圖中可以看出,儀器的輸出接口采用兩種方式,即集電極開路(OC門)方式和射極輸出方式,其中OC門方式是很多以頻率信號為輸出的儀器的標(biāo)準(zhǔn)輸出方式,如光電編碼器、霍爾開關(guān)等。
全數(shù)字信號發(fā)生器的硬件部分就介紹到這里,下一期將介紹程序的編寫。
圖2
圖3