- 相關(guān)推薦
工作頻率可動(dòng)態(tài)調(diào)整的單片機(jī)系統(tǒng)設(shè)計(jì)
摘要:介紹一種采用可編程CMOS頻率合成器DS1077設(shè)計(jì)的單片機(jī)系統(tǒng),使單片機(jī)能根據(jù)環(huán)境需要?jiǎng)討B(tài)調(diào)整系統(tǒng)的工作頻率,既能滿足系統(tǒng)求的實(shí)時(shí)處理能力,又盡可能地降低系統(tǒng)的耗電量及引起的電磁干擾。同時(shí)還討論了系統(tǒng)改變工作頻率后對(duì)RS232串行通訊的影響以及解決辦法確保該系統(tǒng)在不的工作頻率下仍能正常進(jìn)行RS232串行通信。這種單片機(jī)系統(tǒng)的變頻設(shè)計(jì)提高了系統(tǒng)的適用范圍和兼容性,使系統(tǒng)設(shè)計(jì)更加靈活。關(guān)鍵詞:可編程CMOS頻率合成器 串行通訊 動(dòng)態(tài)編程 DS1077
在單片機(jī)系統(tǒng)中,總希望單片機(jī)能夠工作于最大頻率,以提高系統(tǒng)的實(shí)時(shí)處理能力。但單片機(jī)系統(tǒng)工作頻率越高,其耗電量及引起的電磁干擾也就越大,并且單片機(jī)工作頻率的選擇直接影響到RS232串行通訊。特別是在51單片機(jī)系統(tǒng)中,RS232串行通訊的使用往往決定了系統(tǒng)時(shí)鐘選用,這使得在設(shè)計(jì)單片機(jī)系統(tǒng)時(shí)的靈活性大大降低。在很多情況下,希望設(shè)計(jì)出一個(gè)工作頻率可根據(jù)任務(wù)的輕得實(shí)時(shí)改變,并且能夠在各種工作頻率下進(jìn)行RS232串行通訊的單片機(jī)系統(tǒng),它既能滿足單片機(jī)的實(shí)時(shí)處理要求,又有利于降低系統(tǒng)的耗電量和電磁干擾。采用可編程CMOS頻率合成器DS1077后,設(shè)計(jì)這種系統(tǒng)變得簡(jiǎn)單了。
1 可編程CMOS頻率合成器DS1077
1.1 DS1077的引腳及其功能
DS1077是一個(gè)具有兩種同步輸出的單片機(jī)固定頻率合成器。它不需要外接任何元件即可工作,允許通過二線串行接口頻率合成器進(jìn)行動(dòng)態(tài)編程。DS1077的輸出頻率范圍寬(8kHz~133MHz),且在整個(gè)溫度和電壓變化范圍內(nèi)輸出頻率偏差小于1%。DS1077既可作為由控制器編程的兩路同步頻率合成器使用,也可以當(dāng)作固定頻率振蕩器使用?刂破骺赏ㄟ^編程片上的兩個(gè)預(yù)標(biāo)定器和一個(gè)除法器來調(diào)整兩路同步輸出頻率。工作模式和輸出頻率的設(shè)定值存儲(chǔ)于片上EEPROM中。每次上電時(shí),存儲(chǔ)于EEPROM中的值自動(dòng)彈出到各個(gè)寄存器中,使DS1077工作于以前設(shè)定的初始狀態(tài)。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
引腳功能:
SCL:串行時(shí)鐘輸入線(用于編程);
SDA:串行數(shù)據(jù)輸入、輸出線(用于編程);
CTR1:控制OUT1輸出允許或芯片掉電模式的多功能引腳;
CRT0:控制OUT0輸出允許、芯片掉電模式或MUX選擇的多功能引腳;
OUT1:參考頻率輸出引腳;
OUT0:主振蕩頻率輸出引腳。
1.2 DS1077內(nèi)部框圖如圖及工作原理
DS1077內(nèi)部框圖如圖1所示。主要由內(nèi)部主振蕩器、2個(gè)預(yù)定標(biāo)器、1個(gè)可編程除法器和3個(gè)控制寄存器四大部分組成。主振蕩器產(chǎn)生的時(shí)鐘信號(hào)MCLK既可直接輸出到OUT0,也可以經(jīng)過P0預(yù)定標(biāo)器分頻后輸出OUT0。另外時(shí)鐘信號(hào)MCLK經(jīng)過P1預(yù)定標(biāo)器分頻后要么直接輸出到OUT1,要么再經(jīng)可編程除法器N分頻后輸出到OUT1。
主時(shí)鐘信號(hào)MCLK經(jīng)過P0預(yù)定標(biāo)器進(jìn)行1、2、4或8分頻后送入MUX選擇器。同時(shí),主時(shí)鐘信號(hào)MCLK經(jīng)過P1預(yù)定標(biāo)器進(jìn)行1、2、4或8分頻后既可直接輸出到OUT1引腳,又可輸出到可編程除法器N進(jìn)行2~1025之間的任一分頻后送到OUT1引腳。
通過對(duì)控制寄存器進(jìn)行編程,可決定DS1077輸出頻率和工作模式?刂萍拇嫫鞯闹荡嬗谄瑑(nèi)的EEPROM中,因此只有改變輸出頻率和工作模式時(shí)才需要對(duì)DS1077重新編程。
1.3 DS1077的控制寄存器
DS1077的控制包括MUX寄存器、DIV寄存器和BUS寄存器共3個(gè)寄存器。MUX寄存器用于設(shè)置頻率合成器的工作模式,DIV寄存器用于設(shè)置工作頻率,BUS寄存器用于設(shè)置總線控制方式。它們的設(shè)置方式如下:
MUX寄存器(16位):
- PDN1 PDN0 SEL0 EN0 0M1 0M0 1M1 1M0 DIV - - - - - -其中,標(biāo)志位EN0、SEL0、PDN0和引腳CTRL0對(duì)輸出OUT0的工作模式進(jìn)行設(shè)定,如表1所示。標(biāo)志位PDN1和引腳CTRL1對(duì)輸出OUT1的工作模式進(jìn)行設(shè)定,如表2所示。標(biāo)志位DIV決定是否使用可編程除法器N。當(dāng)DIV=1時(shí),可編程除法器被忽略;如果DIV=0,可編程除法器正常工作。標(biāo)志位0M1和0M0、1M1和1M0分別決定了預(yù)定標(biāo)器P0和P1的分頻比,如表3所示。
表1 輸出OUT0的工作模式設(shè)定
其中,MCLK為內(nèi)部振蕩器產(chǎn)生的主時(shí)鐘信號(hào),MCLK/M為主時(shí)鐘信號(hào)經(jīng)P0預(yù)定標(biāo)器分頻后的時(shí)鐘信號(hào)。
表2 輸出OUT1的工作模式設(shè)定
CTRL1功能
0 OUT1輸出允許(CTR1=1時(shí)OUT1輸出,CTR1=0輸出高阻) 1 掉電控制(CTR1=1進(jìn)入掉電模式,CTR1=0時(shí)OUT1輸出)表3 P0和P1的分頻比
0M1 0M0 P0預(yù)定標(biāo)器分頻比 1M1 1M0 P1預(yù)定標(biāo)器分頻比 0 0 1 0 0 2 0 1 2 0 1 4 1 0 4 1 0 6 1 1 8 1 1 8DIV寄存器(16位):
N9 N8 N7 N6 N5 N4 N3 N2 N1 N0 X X X X X X10位二進(jìn)制數(shù)決定了除法寄存器的值N,10位二進(jìn)制數(shù)的值加2就是N的值。例如:0000000000表示2分頻,1111111111表示1025分頻。
BUS寄存器(8位):
- - - - WC A2 A1 A0如果WC=0,表示每次操作控制寄存器后自動(dòng)保存到EEPROM中;如果WC=1表示只有對(duì)控制寄存器進(jìn)行寫操作時(shí)才把值保存到EEPROM中。A3A2A1代表該DS1077芯片在總線操作中的地址。因此,同一系統(tǒng)中最多可接入8個(gè)DS1077。,
2 系統(tǒng)硬件電路及工作原理
可編程CMOS頻率合成器DS1077在單片機(jī)系統(tǒng)中的硬件電路如圖2所示。
在圖2中,可編程CMOS頻率合成器DS1077的輸出引腳OUT1接到單片機(jī)AT89C51的XTL1引腳,單片機(jī)的XTL2引腳不接,DS1077的輸出引腳OUT0不使用(在軟件中禁止),CRTL1和CTRL0接地。由于AT89C51單片機(jī)沒有二線串行接口,所以把DS1077的SCL和SDA接到單片機(jī)的P1.0和P1.1,用單片機(jī)的P1.0和P1.1模擬二線串行接口。
可編程CMOS頻率合成器DS1077設(shè)定為:引腳OUT0禁止使用;引腳OUT的輸出頻率略低于單片機(jī)的最高工作頻率;BUS寄存器的WC位置1(只有向頻率合成器DS1077發(fā)出寫命令時(shí)才把各個(gè)寄存器的值寫入EEPROM中)。這樣,在每次啟動(dòng)單片機(jī)系統(tǒng)時(shí),單片機(jī)總運(yùn)行在較高的工作頻率;當(dāng)完成了系統(tǒng)的初始化后,單片機(jī)就可以根據(jù)工作情況重新設(shè)置適合的工作頻率。在單片機(jī)工作過程中,最好不要向頻率合成器DS1077發(fā)出寫EEPROM命令。因?yàn)橹匦略O(shè)置工作頻率即使超出了單片機(jī)的頻率范圍,造成單片機(jī)死機(jī),由于寄存器的值沒有寫入EEROM中,當(dāng)重新啟動(dòng)時(shí),單片機(jī)仍然能夠工作;如果把錯(cuò)誤的工作頻率寫入EEPROM中,會(huì)造成系統(tǒng)不能重新啟動(dòng),此時(shí)只能取下DS1077芯片,用其他工具對(duì)它進(jìn)行重新編程。
3 系統(tǒng)頻率改變對(duì)RS232串行通訊的影響及動(dòng)態(tài)調(diào)整工作頻率時(shí)的解決辦法
在單片機(jī)系統(tǒng)中,時(shí)鐘頻率與RS232串行通訊有著密切的關(guān)系。例如,對(duì)于使用12MHz晶振的系統(tǒng)(早期的8051的最大工作頻率是12MHz),表4顯示了定時(shí)器1的自動(dòng)重新載值與波特率之間的關(guān)系、與標(biāo)準(zhǔn)波特率的誤差。
表4 定時(shí)器1的自動(dòng)重裝載值與波特率之間的關(guān)系、與標(biāo)準(zhǔn)波特率的誤差
波特率=2SMOD/32×{fosc/[12×(256-TH1)]}
其中,fosc為振蕩頻率,SMOD為單片機(jī)的波特率倍增位,TH1為定時(shí)器1的自動(dòng)重裝載值。
在RS232串行通訊時(shí),波特率發(fā)生器的誤差一般都不允許超過3%,否則就會(huì)造成通訊失敗,也就是說在采用12MHz晶振的51系統(tǒng)中只能夠使用2400波特率進(jìn)行RS232通訊。顯然這在很多情況下都不能滿足系統(tǒng)需要。為了滿足RS232串行通訊的需要,通常選用少數(shù)特殊頻率的晶振,如11.059MHz和22.118MHz。這大大減小了波特率發(fā)生器的誤差(見表5),但也使得設(shè)計(jì)的靈活性大大降低。
表5 特殊頻率的晶振下波特率發(fā)生器的誤差
254
253
250
244
232
208 28799.5
14399.7
9599.8
4799.91
2399.95
1199.98
- 28800
14400
9600
4800
2400
1200
- -
28799.5
14399.6
9599.83
4799.91
2399.95
1199.98 -
28800
14400
9600
4800
2400
1200
在使用DS1077芯片的系統(tǒng)中,這個(gè)問題變得簡(jiǎn)單了。DS1077芯片共有133MHz、125MHz、120MHz、100MHz、66.666MHz五種型號(hào)。下面以66.666MHz的DS1077x-66為例來介紹在各種工作頻率下進(jìn)行RS232串行通訊的實(shí)現(xiàn)方案。
由于DS1077在整個(gè)溫度和電壓變化范圍內(nèi)的頻率偏差小于1%,加上DS1077的輸出作為單片機(jī)時(shí)鐘所產(chǎn)生的波特率與理想值之間的誤差0.47%(66.666MHz除6即11.111MHz與理想頻率11.059MHz之間的誤差為0.47%),完全能夠滿足串行通訊3%的精度要求。表6列出了單片機(jī)系統(tǒng)工作在能夠滿足上述要求的各種頻率下的波特率及此時(shí)定時(shí)器1的自動(dòng)重裝載值(該表由計(jì)算機(jī)模擬得出)。
如果單片機(jī)選用最高頻率為40MHz的89C51,則可以把DS1077的可編程除法器N設(shè)置為2,即讓單片機(jī)工作于33.333MHz。由表6可知,當(dāng)定時(shí)器1的自動(dòng)重裝載值設(shè)置不同進(jìn),單片機(jī)系統(tǒng)可以分別以28.8kbps、14.4kbps、9600bps、4800bps、2400bps進(jìn)行可靠的串行通訊。系統(tǒng)對(duì)單片機(jī)速度要求不高時(shí),單片機(jī)則可以把N設(shè)置成3、6、9、18、36,則系統(tǒng)分別工作于22.222MHz、11.111MHz、7.0473MHz、3.7037MHz和1.85183MHz。值得一提的是,當(dāng)單片機(jī)工作頻率太低時(shí),單片機(jī)只能以較低的波特率通訊。例如,當(dāng)單片機(jī)工作在1.85183MHz時(shí),串行通訊只能是2400bps或更低。當(dāng)然,如果單片機(jī)不按這些標(biāo)準(zhǔn)波特率進(jìn)行通訊或根本就不需要串行通訊,單片機(jī)系統(tǒng)的工作頻率的選擇范圍也就更寬了。
表6 單片機(jī)波特率及定時(shí)器1的自動(dòng)重裝載值(波特率發(fā)生器誤差全部為0.47%)
從上面的討論可看出,在單牒同編程時(shí)只需把表6設(shè)計(jì)成工作頻率表格存于程序存儲(chǔ)器中。在需要改變工作頻率時(shí)從表格中查出該頻率所對(duì)應(yīng)的N值和所需要的波特率對(duì)應(yīng)的自動(dòng)重裝載值,通過N值計(jì)算出DIV寄存器的值寫入到DS1077中,把系統(tǒng)的工作頻率設(shè)置到了相應(yīng)的值上;同時(shí),用該自動(dòng)重裝載值對(duì)T1定時(shí)器進(jìn)行設(shè)置,就能保證系統(tǒng)的RS232串行通訊。
【工作頻率可動(dòng)態(tài)調(diào)整的單片機(jī)系統(tǒng)設(shè)計(jì)】相關(guān)文章:
單片機(jī)系統(tǒng)的動(dòng)態(tài)加密技術(shù)08-06
單片機(jī)測(cè)頻率信號(hào)的參數(shù)分析08-06
CPLD器件的在系統(tǒng)動(dòng)態(tài)配置08-06
一種寬動(dòng)態(tài)范圍的智能測(cè)量系統(tǒng)設(shè)計(jì)08-06
多CPU單片機(jī)系統(tǒng)設(shè)計(jì)在社區(qū)安防系統(tǒng)中的應(yīng)用08-06
嵌入式系統(tǒng)設(shè)計(jì)方法的演化—從單片機(jī)到單片系統(tǒng)08-06