胡險(xiǎn)峰
(四川大學(xué) 物理科學(xué)與技術(shù)學(xué)院,四川 成都 610064)
用數(shù)據(jù)采集卡的數(shù)字通道控制外部電路
胡險(xiǎn)峰
(四川大學(xué) 物理科學(xué)與技術(shù)學(xué)院,四川 成都610064)
數(shù)據(jù)采集卡的數(shù)字信號(hào)通道具有輸入輸出功能,在做信號(hào)采集時(shí)輸出的控制信號(hào)會(huì)被重置。外部設(shè)備或電路有控制信號(hào)存儲(chǔ)功能時(shí),可以直接用數(shù)字信號(hào)通道以并行或串行模式來(lái)控制。外部設(shè)備或電路沒有控制信號(hào)存儲(chǔ)功能時(shí),需要外部設(shè)置控制信號(hào)保持電路,以便數(shù)據(jù)采集卡轉(zhuǎn)而控制其他外設(shè)或電路,或轉(zhuǎn)入數(shù)據(jù)采集模式。J-K觸發(fā)器或D觸發(fā)器可以用來(lái)保持控制信號(hào),可以方便、有效地控制AD9850信號(hào)發(fā)生器模塊、L298馬達(dá)控制模塊以及用USBeeDx-Pro數(shù)據(jù)采集卡實(shí)現(xiàn)的虛擬示波器外部增益程控電路。
數(shù)據(jù)采集卡;數(shù)字通道;控制信號(hào);保持電路
數(shù)據(jù)采集卡的模擬信號(hào)采集通道可以用來(lái)采集模擬信號(hào),數(shù)據(jù)采集卡上的數(shù)字信號(hào)通道可以用來(lái)控制外部設(shè)備或電路[1-2]。比如用數(shù)字信號(hào)通道以并行或串行模式,向AD9850信號(hào)發(fā)生器模塊發(fā)送頻率和相位控制字,然后用模擬信號(hào)采集通道采集AD9850輸出的信號(hào)。有的數(shù)據(jù)采集卡采集模擬通道信號(hào)時(shí),提供的編程函數(shù)會(huì)把數(shù)字信號(hào)通道設(shè)置成輸入模式,如USBeeDx-Pro數(shù)據(jù)采集卡,這樣數(shù)字信號(hào)通道輸出的控制信號(hào)就不能保持,對(duì)AD9850信號(hào)發(fā)生器模塊這樣具有控制字存儲(chǔ)功能的外部設(shè)備,不會(huì)影響其正常工作。若用USBeeDx-Pro數(shù)據(jù)采集卡虛擬示波器,由于該卡沒有輸入信號(hào)增益控制功能,還需要控制一個(gè)外部被測(cè)信號(hào)的增益控制電路,就需要在數(shù)字信號(hào)通道外部設(shè)置控制信號(hào)保持電路。又如用L298馬達(dá)控制模塊控制馬達(dá)正反轉(zhuǎn)和停車,同時(shí)采集馬達(dá)轉(zhuǎn)動(dòng)時(shí)帶動(dòng)傳感器探測(cè)到的信號(hào),也需要外部的控制信號(hào)保持電路,保持馬達(dá)的轉(zhuǎn)動(dòng)狀態(tài)。本文介紹用數(shù)據(jù)采集卡的數(shù)字信號(hào)通道控制AD9850信號(hào)發(fā)生器模塊,虛擬示波器外部增益電路和L298馬達(dá)控制模塊的編程及控制信號(hào)保持電路。
AD9850的控制數(shù)據(jù)共5 B(即40 bit)二進(jìn)制數(shù),其中第0個(gè)字節(jié)的0和1位是工廠保留的內(nèi)部測(cè)試控制位,使用時(shí)置0,第2位是電源開關(guān)位,置0開機(jī), 3~7位是輸出信號(hào)的相位;第1~4字節(jié)共32位是輸出信號(hào)的頻率,第4個(gè)字節(jié)是頻率的低8位數(shù)據(jù)。在并行數(shù)據(jù)裝載模式下,先向寄存器寫入第0個(gè)字節(jié),再依次寫入第1到第4個(gè)字節(jié),即輸出信號(hào)的相位在40位數(shù)據(jù)的最高位。并行數(shù)據(jù)裝載模式需要8根數(shù)據(jù)線,兩根控制信號(hào)線W_CLK和FQ_UD,在W_CLK信號(hào)的上升沿驅(qū)動(dòng)下裝載1個(gè)控制數(shù)據(jù)字節(jié),裝載完5個(gè)控制數(shù)據(jù)字節(jié)后,在FQ_UD信號(hào)的上升沿驅(qū)動(dòng)下輸出頻率和相位數(shù)據(jù)。將數(shù)據(jù)線d0和d1置1,d2置0,把數(shù)據(jù)裝載模式設(shè)為串行模式。在串行模式下,從d7數(shù)據(jù)線寫入控制數(shù)據(jù),首先寫入的是頻率數(shù)據(jù)的最低位,最后寫入的是相位數(shù)據(jù)的最高位。在W_CLK信號(hào)的上升沿驅(qū)動(dòng)下,逐位移入數(shù)據(jù)寄存器中,最后由FQ_UD信號(hào)上升沿驅(qū)動(dòng)輸出頻率和相位數(shù)據(jù)[3]。
例如,輸出頻率fout=10 kHz,輸入的時(shí)鐘頻率fCLKIN=125 MHz,則頻率調(diào)節(jié)字為:
wordt=232·fout/fCLKIN=343 597.383 68
其32位二進(jìn)制00000000000001010011111000101101,加上2位工廠保留測(cè)試位,1位電源開關(guān)狀態(tài)控制位,以及5位相位,相位值取0,40位控制數(shù)據(jù)為0000000000000000000001010011111000101101。
某些數(shù)據(jù)采集卡只有8位數(shù)字信號(hào)通道,以并行模式向AD9850裝載控制數(shù)據(jù),缺兩個(gè)控制信號(hào)輸出線——W_CLK和FQ_UD??梢允褂么心J絹?lái)實(shí)現(xiàn)AD9850控制數(shù)據(jù)裝載。數(shù)據(jù)采集卡的數(shù)字信號(hào)通道與AD9850信號(hào)發(fā)生器模塊接線示意見圖1。數(shù)字信號(hào)通道的D0與AD9850信號(hào)發(fā)生器模塊的d7連接,D1與FU_DU連接,D2與W_CLK連接,D3與RESET連接,D4與d0連接,D5與d1連接,D6與d2連接。數(shù)據(jù)采集卡的8位數(shù)字信號(hào)通道的輸出構(gòu)成一個(gè)串行控制數(shù)據(jù)字,設(shè)為數(shù)wordc,其中D4和D5置為高電平,D6置為低電平,設(shè)置AD9850數(shù)據(jù)裝載模式為串行模式。每送一位串行控制數(shù)據(jù)字wordc,向數(shù)據(jù)采集卡的數(shù)字信號(hào)通道寫3次。第一次,wordc=0011000X, “X”表示要寫入AD9850的一位串行控制數(shù)據(jù),其作用是在AD9850的d7數(shù)據(jù)線上建立數(shù)據(jù),同時(shí)FU_DU和W_CLK信號(hào)置0,準(zhǔn)備開始讓AD9850裝載數(shù)據(jù);第二次,wordc=0011010X,其作用是在AD9850的d7數(shù)據(jù)線上保持?jǐn)?shù)據(jù),同時(shí)W_CLK信號(hào)置1,讓d7上的數(shù)據(jù)移入寄存器;第三次,wordc=0011000X,其作用是在AD9850的d7數(shù)據(jù)線上保持?jǐn)?shù)據(jù),同時(shí)W_CLK信號(hào)置0,完成一次d7上的數(shù)據(jù)移入寄存器。每次寫后停頓一定時(shí)間再寫,然后重復(fù)。送第39位數(shù)據(jù)時(shí),前兩次寫與前面敘述的相同,而第三次的串行控制字改為,wordc=0011001X,其作用是在AD9850的d7數(shù)據(jù)線上保持?jǐn)?shù)據(jù),同時(shí)W_CLK信號(hào)置0,完成一次d7上的數(shù)據(jù)移入寄存器,而且同時(shí)讓FU_DU信號(hào)置1,完成全部40位串行控制字的裝載,AD9850啟動(dòng)輸出信號(hào)。
AD9850啟動(dòng)后自行工作,只要不改變輸出信號(hào)的頻率和相位,就不再需要數(shù)據(jù)采集卡,數(shù)據(jù)采集卡可以轉(zhuǎn)而控制其他外設(shè),或轉(zhuǎn)換為數(shù)據(jù)輸入模式。采用這種方法實(shí)現(xiàn)用LabVIEW語(yǔ)言編程,讓只有8路數(shù)字信號(hào)通道的MPS-010501數(shù)據(jù)采集卡控制AD9850信號(hào)發(fā)生器模塊。LabVIEW程序稍加改動(dòng),調(diào)用USBeeDx-Pro數(shù)據(jù)采集卡數(shù)字信號(hào)輸出的C程序,來(lái)控制AD9850信號(hào)發(fā)生器模塊,輸出信號(hào)驅(qū)動(dòng)自混合干涉的外腔相位調(diào)制器,然后USBeeDx-Pro數(shù)據(jù)采集卡轉(zhuǎn)而采集自混合干涉信號(hào)[4]。
圖1 數(shù)字信號(hào)通道與AD9850信號(hào)發(fā)生器模塊接線示意圖
用USBeeDx-Pro虛擬示波器遇到的問題之一是采樣分辨率只有8位,正負(fù)10 V量程,電壓測(cè)量精度只有78 mV[5]。要提高測(cè)量精度需要外部增加放大電路。然而,USBeeDx-Pro模擬通道采樣時(shí)會(huì)把其數(shù)字信號(hào)通道設(shè)置為輸入模式,同時(shí)采集數(shù)字信號(hào)通道的輸入。因此,數(shù)字信號(hào)通道在輸出模式下輸出的數(shù)據(jù)會(huì)被重置,不能處于保持狀態(tài)。因而,不能用數(shù)字信號(hào)通道輸出數(shù)據(jù)直接控制外部的可編程放大器,需要在數(shù)字信號(hào)通道與可編程放大器之間接一個(gè)數(shù)據(jù)保持器,保證USBeeDx-Pro采樣時(shí),可編程放大器的增益數(shù)據(jù)不被重置。
J-K觸發(fā)器在時(shí)鐘信號(hào)為低電平時(shí),其J和K端電平變化不改變J-K觸發(fā)器輸出狀態(tài),利用此特性可實(shí)現(xiàn)數(shù)據(jù)保持。按照?qǐng)D2所示的可編程放大器的電路圖,圖中D0~D4和D8~DC接到USBeeDx-Pro數(shù)字信號(hào)通道的相應(yīng)數(shù)據(jù)線。USBeeDx-Pro數(shù)字信號(hào)通道輸出的數(shù)字與兩個(gè)通道增益的關(guān)系見表1。編程方式:首先初始化,向USBeeDx-Pro數(shù)字信號(hào)通道寫十六進(jìn)制數(shù)0x0101,設(shè)置4個(gè)J-K觸發(fā)器的時(shí)鐘信號(hào)為高電平,再寫入0x1919,保持兩個(gè)J-K觸發(fā)器的時(shí)鐘信號(hào)為高電平,同時(shí)置4個(gè)觸發(fā)器的Q為低電平,再寫入0x1818,置4個(gè)觸發(fā)器的時(shí)鐘信號(hào)為低電平,保持4個(gè)觸發(fā)器的輸出狀態(tài),4個(gè)電子模擬開關(guān)斷開。在放大器輸出信號(hào)不超過(guò)電子模擬開關(guān)控制端的電壓時(shí),SW1和 SW2閉合,此時(shí)虛擬示波器兩個(gè)通道的增益Kv1和Kv2為1。若要將虛擬示波器CH1通道的增益調(diào)到10倍,寫入0x0001,再寫入0x0013,再寫入0x0012,U1的Q1保持高電平,Q2保持低電平,U3C開關(guān)閉合,U3D開關(guān)斷開;若增益要調(diào)到100倍,寫入0x0001,再寫入0x0007,再寫入0x0006,U1的Q1和Q2均保持高電平,U3C和U3D均開關(guān)閉合;若要將增益調(diào)回1,寫入0x0001,再寫入0x0019,再寫入0x0018。若要將虛擬示波器CH2通道的增益調(diào)到10倍,寫入0x0100,再寫入0x1300,再寫入0x1200,U2的Q1保持高電平,Q2保持低電平,U3A開關(guān)閉合,U3B開關(guān)斷開;若要將增益調(diào)到100,寫入0x0100,再寫入0x0700,再寫入0x0600,U2的Q1和Q2均保持高電平,U3A和U3B均開關(guān)閉合;若要將增益調(diào)回1,寫入0x0100,再寫入0x1900,再寫入0x1800。D0和D8相當(dāng)于CH1和CH2的地址線。
圖2 可編程放大器的電路圖
CD4066的閉合電阻大約125 Ω,虛擬示波器兩個(gè)通道的10倍和100倍增益實(shí)際測(cè)量大約為10.4和98倍,在程序上把增益設(shè)為實(shí)測(cè)值,比精確挑選或調(diào)整電阻要簡(jiǎn)便,增益與預(yù)設(shè)值差別不大,也不影響虛擬示波器的使用。虛擬示波器通道增益選1倍時(shí),雖然CD4066開關(guān)的兩端用歐姆表測(cè)量是斷開的,但是,當(dāng)運(yùn)放的輸出電壓超過(guò)CD4066控制端的電壓后,運(yùn)放的輸出會(huì)陡然增加,輸出波形失真,最大值處向上突起,說(shuō)明開關(guān)斷開狀態(tài)失效,此時(shí)選擇斷開SW1和SW2開關(guān)。CD4066的說(shuō)明書聲稱工作電壓VDD~VSS可以達(dá)到20 V,實(shí)際情況是超過(guò)15 V時(shí)CD4066就會(huì)嚴(yán)重發(fā)熱。因而,電路中增加穩(wěn)壓二極管來(lái)降低CD4066的工作電壓。用電磁繼電器替代電子模擬開關(guān)就不會(huì)有上述問題。圖2中R3、R4和R5用于U4A調(diào)零,R9、R10和R11用于U4B調(diào)零。
表1 數(shù)字信號(hào)通道輸出的數(shù)字與兩個(gè)通道增益的關(guān)系
用USBeeDx-Pro控制馬達(dá)正轉(zhuǎn)牽動(dòng)滑塊,經(jīng)過(guò)出發(fā)點(diǎn)前的出發(fā)光電門不停車,USBeeDx-Pro的兩個(gè)模擬通道還要采集滑塊運(yùn)動(dòng)的速度數(shù)據(jù)和其他信號(hào)的數(shù)據(jù),經(jīng)過(guò)抵達(dá)光電門后觸發(fā)停車;再控制馬達(dá)反轉(zhuǎn),牽動(dòng)的滑塊通過(guò)抵達(dá)光電門時(shí),馬達(dá)不停車?yán)^續(xù)反轉(zhuǎn),拉動(dòng)滑塊返回出發(fā)點(diǎn),返回經(jīng)過(guò)出發(fā)光電門后觸發(fā)停車??刂齐娐啡鐖D3所示,圖中D0~D3接到USBeeDx-Pro數(shù)字信號(hào)通道的相應(yīng)數(shù)據(jù)線。
圖3 馬達(dá)正反轉(zhuǎn)及停車的控制電路向USBeeDx-Pro的數(shù)字信號(hào)通道寫控制字,D3D2D1D0=0101,U5A和U5B兩個(gè)觸發(fā)器的D置1,U6A觸發(fā)器的D置0,再寫D3D2D1D0=1101,三個(gè)觸發(fā)器的CLK置1,CLK從0→1,上升沿觸發(fā),U5A和U5B兩個(gè)觸發(fā)器的Q置1,U6A觸發(fā)器的Q置0,則兩個(gè)與門U7A和U7B的輸出分別是0和1,則N1=1,N2=0,馬達(dá)正轉(zhuǎn),滑塊出發(fā)。然后程序讓USBeeDx-Pro的兩個(gè)模擬通道開始采集數(shù)據(jù),其數(shù)字信號(hào)通道處于輸入等待狀態(tài),D3D2D1D0=0000?;瑝K通過(guò)出發(fā)光電門U1時(shí),光電門輸出從0→1,此時(shí)與門U3C的10腳是0,始發(fā)光電門U1從0→1,不能通過(guò)與門U3C,U6A觸發(fā)器的狀態(tài)不變,馬達(dá)繼續(xù)正轉(zhuǎn)。當(dāng)滑塊通過(guò)光電門U2時(shí),光電門輸出從0→1,此時(shí)與門U3B的5腳是1,抵達(dá)光電門U2從0→1,可以通過(guò)與門U3B和或門U4D,U5A的CLK從0→1,由于D3D2D1D0=0000,即U5A觸發(fā)器的D為0,則U5A觸發(fā)器的Q置0,而此時(shí)另外兩個(gè)觸發(fā)器,U5B的Q是1,U6A的Q是0,則兩個(gè)與門U7A和U7B 輸入為0,輸出也為0,即N1=0,N2=0,馬達(dá)停轉(zhuǎn)。
要滑塊返回,向USBeeDx-Pro的數(shù)字信號(hào)通道寫控制字,D3D2D1D0=0010,U5A和U5B兩個(gè)觸發(fā)器的D置0,U6A觸發(fā)器的D置1,再寫D3D2D1D0=1010,三個(gè)觸發(fā)器的CLK置1,CLK從0→1,上升沿觸發(fā),U5A和U5B兩個(gè)觸發(fā)器的Q置0,U6A觸發(fā)器的Q置1,則兩個(gè)與門U7A和U7B的輸出分別是1和0,即N1=0,N2=1,馬達(dá)反轉(zhuǎn),滑塊返回。然后程序讓USBeeDx-Pro的兩個(gè)模擬通道開始采集數(shù)據(jù),其數(shù)字信號(hào)通道處于輸入等待狀態(tài),D3D2D1D0=0000?;瑝K通過(guò)抵達(dá)光電門U2時(shí),光電門輸出從0→1,此時(shí)與門U3B的5腳是0,抵達(dá)光電門U2從0→1,不能通過(guò)與門U3B,U5A觸發(fā)器的狀態(tài)不變,馬達(dá)繼續(xù)反轉(zhuǎn)。當(dāng)滑塊通過(guò)始發(fā)光電門U1時(shí),光電門輸出從0→1,此時(shí)與門U3C的10腳是1,始發(fā)光電門U1從0→1,可以通過(guò)與門U3C和或門U4C,U6A的CLK從0→1,由于D3D2D1D0=0000,即U6A觸發(fā)器的D為0,則U6A觸發(fā)器的Q置0,而此時(shí)另外兩個(gè)觸發(fā)器,U5A和U5B的狀態(tài)都是Q=0,則兩個(gè)與門U7A和U7B 輸入有0,輸出也為0,即N1=0,N2=0,馬達(dá)停轉(zhuǎn)。
數(shù)據(jù)采集卡上的數(shù)字信號(hào)通道可以方便地用來(lái)控制外設(shè)或電路,其各個(gè)數(shù)字位或數(shù)據(jù)線可以以不同的組合來(lái)控制多個(gè)外部電路,數(shù)據(jù)線既可以用來(lái)作為外部電路的數(shù)據(jù)線,也可以作為外部電路的地址線或控制線。J-K或D觸發(fā)器可以有效解決數(shù)字信號(hào)通道輸出信號(hào)的保持,讓數(shù)據(jù)采集卡可以轉(zhuǎn)而控制其他外部電路,或轉(zhuǎn)換為數(shù)據(jù)輸入模式。
[1] 寧紅英,李學(xué)平,盧秀,等.基于STC單片機(jī)的角度控制[J].微型機(jī)與應(yīng)用,2017,36(7):32-34,38.
[2] 馮笑,李西安.基于LabVIEW的機(jī)車軸溫監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2016,35(12):93-95.
[3] Analog Devices. CMOS,125 MHz complete DDS synthesizer AD9850 user’s manual[Z]. Analog Devices,Inc.,1999.
[4] 胡險(xiǎn)峰.激光自混合干涉測(cè)量振動(dòng)[J].物理實(shí)驗(yàn),2016,36(z):13-14,18.
[5] 胡險(xiǎn)峰.基于USBeeDX數(shù)據(jù)采樣和LabVIEW編程的虛擬示波器[J].物理實(shí)驗(yàn),2016,36(7):12-16.
Control external circuit by using digital channels of data acquisition card
Hu Xianfeng
(College of Physical Science and Technology,Sichuan University,Chengdu 610064,China)
Digital signal channels of data acquisition card have input and output functions. Outputted control signal will be reset in acquiring external signal. If the external devices or circuits have control signal storage function,they can be directly controlled by the digital signal channels under parallel or serial mode. When there is no control signal storage capability in external devices or circuits,an external holding circuit of the control signal will be required,for the data acquisition card in turn to control other devices or circuits,or change to data collection mode. J-K trigger,or D flip-flop can be used to keep the control signal. Using them can easily and effectively control the AD9850 signal generator module,L298 motor control module,and external gain control circuit of virtual oscilloscope using USBeeDx-Pro data acquisition card.
data acquisition cards; digital channel; control signal; holding circuit
TP23
A
10.19358/j.issn.1674-7720.2017.24.007
胡險(xiǎn)峰.用數(shù)據(jù)采集卡的數(shù)字通道控制外部電路J.微型機(jī)與應(yīng)用,2017,36(24):22-24,31.
2017-05-23)
胡險(xiǎn)峰(1962-),男,研究生,副教授,主要研究方向:物理實(shí)驗(yàn)教學(xué)。