二線串行8位數(shù)模轉(zhuǎn)換器MAX517的特性與應(yīng)用(圖)
關(guān)鍵詞:數(shù)模轉(zhuǎn)換器;max517;單片機(jī);通信;應(yīng)用
---在計(jì)算機(jī)的測(cè)控系統(tǒng)中,常要用到模擬輸出,數(shù)模轉(zhuǎn)換器(dac)就是一種將數(shù)字信號(hào)轉(zhuǎn)換成模擬電信號(hào)的器件。dac根據(jù)輸入數(shù)據(jù)的格式一般分為并行和串行兩種,并行的dac通常有8位、10位、12位和16位等,并行芯片進(jìn)行d/a轉(zhuǎn)換時(shí),輸出建立時(shí)間短,通常不超過10μs,但它們的引腳比較多,芯片體積大,與cpu連接時(shí)電路較復(fù)雜。有些應(yīng)用并不太計(jì)較d/a轉(zhuǎn)換的輸出建立時(shí)間,比如在數(shù)控機(jī)床中,主軸電機(jī)通常由交流變頻器來控制,交流變頻器接受數(shù)控系統(tǒng)輸出的模擬電壓,當(dāng)需要改變主軸轉(zhuǎn)速時(shí),從數(shù)字量轉(zhuǎn)速的輸入到模擬量轉(zhuǎn)速的實(shí)現(xiàn),由于三相異步電機(jī)的啟動(dòng),中間通常有一個(gè)較長(zhǎng)的時(shí)間(一般需要1~3s)。此時(shí),在數(shù)控系統(tǒng)中,選用串行dac來控制變頻器,即可滿足要求,雖然輸出建立時(shí)間比并行dac稍長(zhǎng)(通常也不超過100μs),但這樣的時(shí)間與電機(jī)的啟動(dòng)時(shí)間比起來,完全可以忽略不計(jì),且串行dac與cpu連接時(shí)所用引線少、電路簡(jiǎn)單,芯片體積小、價(jià)格低。
---當(dāng)精度要求不是太高時(shí),對(duì)于單路的dac,可以選用美國(guó)maxim公司生產(chǎn)的8位串行d/a芯片max517。本文將主要介紹max517的特性及其與at89s52單片機(jī)的通信。
max517的性能簡(jiǎn)介
---max517是8位電壓輸出型數(shù)模轉(zhuǎn)換器,它帶有簡(jiǎn)單的雙線串行接口,允許多個(gè)設(shè)備之間進(jìn)行通信。max517使用簡(jiǎn)單的雙線串行接口,只需要標(biāo)準(zhǔn)的微處理器提供2根總線與之相連,如圖1所示。微處理器的scl輸出時(shí)鐘信號(hào),sda輸出數(shù)據(jù)。當(dāng)微處理器的scl傳送時(shí)鐘脈沖時(shí),對(duì)于max517來說,最高頻率不能超過400khz,即波特率不超過400kbps。圖2是max517的一個(gè)完整的串行數(shù)據(jù)傳送時(shí)序。
---首先,微處理器應(yīng)給max517一個(gè)地址字節(jié),max517收到之后,給處理器一個(gè)應(yīng)答信號(hào);其次,處理器再給max517一個(gè)命令字節(jié),max517收到之后,又發(fā)一個(gè)應(yīng)答信號(hào)給處理器;最后,處理器將要轉(zhuǎn)換的數(shù)字量(輸出字節(jié))送給max517,max517收到之后,再一次向處理器發(fā)送一個(gè)應(yīng)答信號(hào)。至此,一個(gè)完整的串行數(shù)據(jù)傳送即告結(jié)束。
max517與at89s52單片機(jī)的通信
---對(duì)于at89s52單片機(jī)來說,有兩種方式向max517傳送數(shù)據(jù),一種是串行傳送方式,另外一種是普通輸出方式。
● 串行傳送方式
---如圖4所示,將at89s52的rxd、txd引腳分別連接到max517的sda和scl引腳,把a(bǔ)t89s52的串行口設(shè)置成工作方式0。此時(shí),at89s52 cpu的串行口為同步移位寄存器方式,其波特率是固定的,為cpu晶振頻率fosc的 1/12,數(shù)據(jù)由rxd引腳出入,同步移位脈沖由txd引腳送出,發(fā)送或接收的是8位數(shù)據(jù),低位在先,高位在后。當(dāng)一個(gè)8位的數(shù)據(jù)寫入cpu的串行口發(fā)送緩沖器sbuf時(shí),串行口即將8位數(shù)據(jù)以 fosc/12的波特率從rxd引腳輸出(從低位到高位),發(fā)送完成時(shí),置中斷標(biāo)志ti=1。采用上述傳送方式時(shí),正好與max517的串行口特性相吻合。詳細(xì)的傳送程序清單如下。
---clr es ;關(guān)串行口中斷
---mov scon,#00h ;初始化,寫串行口控制字,取工作模式0
---mov a,#01011000b ;準(zhǔn)備max517的地址字節(jié)
---mov sbuf,a ;向cpu的串口發(fā)送
---jnb ti,$ ;送完8位否?若未送完,則踏步等待
---clr ti ;若送完,則清ti標(biāo)志
---jb p3.0,$ ;查應(yīng)答信號(hào)
---nop ;地址已送完
---mov a,#00000000b ;準(zhǔn)備max517的命令字節(jié)
---mov sbuf,a ;向cpu的串口發(fā)送
---jnb ti,$ ;送完8位否?若未送完,則踏步等待
---clr ti ;若送完,則清ti標(biāo)志
---jb p3.0,$ ;查應(yīng)答信號(hào)
---nop ;命令已送完
---mov a,#xxh ;準(zhǔn)備max517的輸出字節(jié)
---mov sbuf,a ;向cpu的串口發(fā)送
---jnb ti,$ ;送完8位否?若未送完,則踏步等待
---clr ti ;若送完,則清ti標(biāo)志
---jb p3.0,$ ;查應(yīng)答信號(hào)
---nop ;輸出字節(jié)已送完
---ret
---值得注意的是,max517的+5v scl在接收cpu送來的脈沖信號(hào)時(shí),fmax=400khz,而cpu的串口工作在方式0時(shí),從txd引腳輸出的脈沖頻率ftxd=fosc/12。這樣,就要求ftxd=fosc/12≤400khz,即fosc≤4.8mhz,也就是說,cpu的晶振頻率不能超出4.8mhz。對(duì)于機(jī)床數(shù)控系統(tǒng)來說,選用mcs-51系列單片機(jī)作cpu時(shí),若fosc≤4.8mhz,雖然照顧了max517的數(shù)據(jù)傳送,但會(huì)導(dǎo)致系統(tǒng)的處理速度大大降低。因此,采用cpu串口方式0進(jìn)行數(shù)據(jù)傳送的方案,要視具體場(chǎng)合,在高速場(chǎng)合,通常不可取,只能用在低速場(chǎng)合。另外,采用串行傳送時(shí),cpu就不能再與其他系統(tǒng)進(jìn)行串行通信了。
● 普通輸出方式
---在普通輸出方式下,可以通過cpu的2根輸出線,或系統(tǒng)擴(kuò)展輸出芯片(如8255a)的2根輸出線與max517進(jìn)行通信。圖4中采用的是at89s52的p1.1、p1.0兩引腳,分別與max517的scl、sda兩引腳相連接。cpu遵照max517的工作時(shí)序,通過其p1.1引腳在必要的時(shí)候主動(dòng)地輸出單個(gè)的時(shí)鐘脈沖,作為時(shí)鐘信號(hào),然后從p1.0引腳逐個(gè)地輸出地址字節(jié)、命令字節(jié)和輸出字節(jié)。在普通輸出方式下,串行數(shù)據(jù)傳送的軟件流程如圖5所示。在數(shù)據(jù)的傳送過程中,必須遵守以下的約定:
(1)起始條件
---傳送沒有開始的時(shí)候,cpu 先將p1.1置高,使得max517的scl=1;然后cpu控制p1.0由高變低,使得max517的sda產(chǎn)生負(fù)跳變,標(biāo)志著傳送的開始。
(2)中間過程
---中間過程需要傳送地址字節(jié)、命令字節(jié)和輸出字節(jié)。根據(jù)max517的工作時(shí)序,當(dāng)且僅當(dāng)scl=0(即p1.1=0)時(shí),sda才能產(chǎn)生跳變(p1.0由0變1,或由1變0);當(dāng)scl=1(即p1.1=1)時(shí),sda狀態(tài)保持(即p1.0=0或1,保持不變)。
(3)終止條件
---當(dāng)傳送快要結(jié)束的時(shí)候,cpu先將p1.1置高,使得max517的scl=1;然后cpu控制p1.0由低變高,使得max517的sda產(chǎn)生正跳變,標(biāo)志著傳送的結(jié)束。
---在普通輸出方式下,不占用cpu的串行口,不影響本系統(tǒng)與其他系統(tǒng)的串行數(shù)據(jù)通信;并且普通輸出方式的傳送易于控制速度,不像串行傳送方式對(duì)cpu的晶振頻率有限制,因此推薦使用普通輸出方式。
結(jié)束語(yǔ)
---在研制的機(jī)床數(shù)控系統(tǒng)中,選擇at89s52單片機(jī)作為cpu,采用本文提出的普通輸出方式向max517傳送數(shù)據(jù),實(shí)現(xiàn)了對(duì)交流變頻器的控制。應(yīng)用實(shí)踐表明,采用max517進(jìn)行d/a轉(zhuǎn)換時(shí),硬件連接簡(jiǎn)單,軟件編程方便,器件成本低廉,系統(tǒng)運(yùn)行可靠。本文提出的單片機(jī)與max517的通信方式,對(duì)于max518和max519兩種dac也具有一定的參考價(jià)值。
參考文獻(xiàn)
1 吳秀清等.微型計(jì)算機(jī)原理與接口技術(shù).中國(guó)科學(xué)技術(shù)大學(xué)出版社.2002
2 劉紅玲等.實(shí)用微機(jī)接口技術(shù).中國(guó)電力出版社.2003
3 maxim. new releases data book. volume v. printed usa.1996
4 李華.mcs-51系列單片機(jī)實(shí)用接口技術(shù).北京航空航天大學(xué)出版社.1993
5 王玉琳.ck-i型車床閉環(huán)控制系統(tǒng)的研究與應(yīng)用.合肥工業(yè)大學(xué).1991
評(píng)論