觸發(fā)器是時(shí)序邏輯電路的基本構(gòu)成單元,按功能不同可分為 RS 觸發(fā)器、 JK 觸發(fā)器、 D 觸發(fā)器及 T 觸發(fā)器四種,其功能的描述可以使用功能真值表、激勵(lì)表、狀態(tài)圖及特性方程。只要增加門電路便可以實(shí)現(xiàn)不同功能觸發(fā)器的相互轉(zhuǎn)換,例如要將 D 觸發(fā)器轉(zhuǎn)換為 JK 觸發(fā)器,轉(zhuǎn)換的關(guān)鍵是推導(dǎo)出 D 觸發(fā)器的輸入端 D 與 JK 觸發(fā)器的輸入端J 、 K 及狀態(tài)輸出端 Qn 的邏輯表達(dá)式,然后用門電路去實(shí)現(xiàn)該邏輯表達(dá)式。具體的設(shè)計(jì)方法有公式法和圖表法兩種。
上傳時(shí)間: 2014-12-23
上傳用戶:lbbyxmoran
摘要: 介紹了時(shí)鐘分相技術(shù)并討論了時(shí)鐘分相技術(shù)在高速數(shù)字電路設(shè)計(jì)中的作用。 關(guān)鍵詞: 時(shí)鐘分相技術(shù); 應(yīng)用 中圖分類號(hào): TN 79 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào): 025820934 (2000) 0620437203 時(shí)鐘是高速數(shù)字電路設(shè)計(jì)的關(guān)鍵技術(shù)之一, 系統(tǒng)時(shí)鐘的性能好壞, 直接影響了整個(gè)電路的 性能。尤其現(xiàn)代電子系統(tǒng)對(duì)性能的越來越高的要求, 迫使我們集中更多的注意力在更高頻率、 更高精度的時(shí)鐘設(shè)計(jì)上面。但隨著系統(tǒng)時(shí)鐘頻率的升高。我們的系統(tǒng)設(shè)計(jì)將面臨一系列的問 題。 1) 時(shí)鐘的快速電平切換將給電路帶來的串?dāng)_(Crosstalk) 和其他的噪聲。 2) 高速的時(shí)鐘對(duì)電路板的設(shè)計(jì)提出了更高的要求: 我們應(yīng)引入傳輸線(T ransm ission L ine) 模型, 并在信號(hào)的匹配上有更多的考慮。 3) 在系統(tǒng)時(shí)鐘高于100MHz 的情況下, 應(yīng)使用高速芯片來達(dá)到所需的速度, 如ECL 芯 片, 但這種芯片一般功耗很大, 再加上匹配電阻增加的功耗, 使整個(gè)系統(tǒng)所需要的電流增大, 發(fā) 熱量增多, 對(duì)系統(tǒng)的穩(wěn)定性和集成度有不利的影響。 4) 高頻時(shí)鐘相應(yīng)的電磁輻射(EM I) 比較嚴(yán)重。 所以在高速數(shù)字系統(tǒng)設(shè)計(jì)中對(duì)高頻時(shí)鐘信號(hào)的處理應(yīng)格外慎重, 盡量減少電路中高頻信 號(hào)的成分, 這里介紹一種很好的解決方法, 即利用時(shí)鐘分相技術(shù), 以低頻的時(shí)鐘實(shí)現(xiàn)高頻的處 理。 1 時(shí)鐘分相技術(shù) 我們知道, 時(shí)鐘信號(hào)的一個(gè)周期按相位來分, 可以分為360°。所謂時(shí)鐘分相技術(shù), 就是把 時(shí)鐘周期的多個(gè)相位都加以利用, 以達(dá)到更高的時(shí)間分辨。在通常的設(shè)計(jì)中, 我們只用到時(shí)鐘 的上升沿(0 相位) , 如果把時(shí)鐘的下降沿(180°相位) 也加以利用, 系統(tǒng)的時(shí)間分辨能力就可以 提高一倍(如圖1a 所示)。同理, 將時(shí)鐘分為4 個(gè)相位(0°、90°、180°和270°) , 系統(tǒng)的時(shí)間分辨就 可以提高為原來的4 倍(如圖1b 所示)。 以前也有人嘗試過用專門的延遲線或邏輯門延時(shí)來達(dá)到時(shí)鐘分相的目的。用這種方法產(chǎn)生的相位差不夠準(zhǔn)確, 而且引起的時(shí)間偏移(Skew ) 和抖動(dòng) (J itters) 比較大, 無法實(shí)現(xiàn)高精度的時(shí)間分辨。 近年來半導(dǎo)體技術(shù)的發(fā)展, 使高質(zhì)量的分相功能在一 片芯片內(nèi)實(shí)現(xiàn)成為可能, 如AMCC 公司的S4405, CY2 PRESS 公司的CY9901 和CY9911, 都是性能優(yōu)異的時(shí)鐘 芯片。這些芯片的出現(xiàn), 大大促進(jìn)了時(shí)鐘分相技術(shù)在實(shí)際電 路中的應(yīng)用。我們?cè)谶@方面作了一些嘗試性的工作: 要獲得 良好的時(shí)間性能, 必須確保分相時(shí)鐘的Skew 和J itters 都 比較小。因此在我們的設(shè)計(jì)中, 通常用一個(gè)低頻、高精度的 晶體作為時(shí)鐘源, 將這個(gè)低頻時(shí)鐘通過一個(gè)鎖相環(huán)(PLL ) , 獲得一個(gè)較高頻率的、比較純凈的時(shí)鐘, 對(duì)這個(gè)時(shí)鐘進(jìn)行分相, 就可獲得高穩(wěn)定、低抖動(dòng)的分 相時(shí)鐘。 這部分電路在實(shí)際運(yùn)用中獲得了很好的效果。下面以應(yīng)用的實(shí)例加以說明。2 應(yīng)用實(shí)例 2. 1 應(yīng)用在接入網(wǎng)中 在通訊系統(tǒng)中, 由于要減少傳輸 上的硬件開銷, 一般以串行模式傳輸 圖3 時(shí)鐘分為4 個(gè)相位 數(shù)據(jù), 與其同步的時(shí)鐘信號(hào)并不傳輸。 但本地接收到數(shù)據(jù)時(shí), 為了準(zhǔn)確地獲取 數(shù)據(jù), 必須得到數(shù)據(jù)時(shí)鐘, 即要獲取與數(shù) 據(jù)同步的時(shí)鐘信號(hào)。在接入網(wǎng)中, 數(shù)據(jù)傳 輸?shù)慕Y(jié)構(gòu)如圖2 所示。 數(shù)據(jù)以68MBös 的速率傳輸, 即每 個(gè)bit 占有14. 7ns 的寬度, 在每個(gè)數(shù)據(jù) 幀的開頭有一個(gè)用于同步檢測(cè)的頭部信息。我們要找到與它同步性好的時(shí)鐘信號(hào), 一般時(shí)間 分辨應(yīng)該達(dá)到1ö4 的時(shí)鐘周期。即14. 7ö 4≈ 3. 7ns, 這就是說, 系統(tǒng)時(shí)鐘頻率應(yīng)在300MHz 以 上, 在這種頻率下, 我們必須使用ECL inp s 芯片(ECL inp s 是ECL 芯片系列中速度最快的, 其 典型門延遲為340p s) , 如前所述, 這樣對(duì)整個(gè)系統(tǒng)設(shè)計(jì)帶來很多的困擾。 我們?cè)谶@里使用鎖相環(huán)和時(shí)鐘分相技術(shù), 將一個(gè)16MHz 晶振作為時(shí)鐘源, 經(jīng)過鎖相環(huán) 89429 升頻得到68MHz 的時(shí)鐘, 再經(jīng)過分相芯片AMCCS4405 分成4 個(gè)相位, 如圖3 所示。 我們只要從4 個(gè)相位的68MHz 時(shí)鐘中選擇出與數(shù)據(jù)同步性最好的一個(gè)。選擇的依據(jù)是: 在每個(gè)數(shù)據(jù)幀的頭部(HEAD) 都有一個(gè)8bit 的KWD (KeyWord) (如圖1 所示) , 我們分別用 這4 個(gè)相位的時(shí)鐘去鎖存數(shù)據(jù), 如果經(jīng)某個(gè)時(shí)鐘鎖存后的數(shù)據(jù)在這個(gè)指定位置最先檢測(cè)出這 個(gè)KWD, 就認(rèn)為下一相位的時(shí)鐘與數(shù)據(jù)的同步性最好(相關(guān))。 根據(jù)這個(gè)判別原理, 我們?cè)O(shè)計(jì)了圖4 所示的時(shí)鐘分相選擇電路。 在板上通過鎖相環(huán)89429 和分相芯片S4405 獲得我們所要的68MHz 4 相時(shí)鐘: 用這4 個(gè) 時(shí)鐘分別將輸入數(shù)據(jù)進(jìn)行移位, 將移位的數(shù)據(jù)與KWD 作比較, 若至少有7bit 符合, 則認(rèn)為檢 出了KWD。將4 路相關(guān)器的結(jié)果經(jīng)過優(yōu)先判選控制邏輯, 即可輸出同步性最好的時(shí)鐘。這里, 我們運(yùn)用AMCC 公司生產(chǎn)的 S4405 芯片, 對(duì)68MHz 的時(shí)鐘進(jìn)行了4 分 相, 成功地實(shí)現(xiàn)了同步時(shí)鐘的獲取, 這部分 電路目前已實(shí)際地應(yīng)用在某通訊系統(tǒng)的接 入網(wǎng)中。 2. 2 高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用 高速、高精度的模擬- 數(shù)字變換 (ADC) 一直是高速數(shù)據(jù)采集系統(tǒng)的關(guān)鍵部 分。高速的ADC 價(jià)格昂貴, 而且系統(tǒng)設(shè)計(jì) 難度很高。以前就有人考慮使用多個(gè)低速 圖5 分相技術(shù)應(yīng)用于采集系統(tǒng) ADC 和時(shí)鐘分相, 用以替代高速的ADC, 但由 于時(shí)鐘分相電路產(chǎn)生的相位不準(zhǔn)確, 時(shí)鐘的 J itters 和Skew 比較大(如前述) , 容易產(chǎn)生較 大的孔徑晃動(dòng)(Aperture J itters) , 無法達(dá)到很 好的時(shí)間分辨。 現(xiàn)在使用時(shí)鐘分相芯片, 我們可以把分相 技術(shù)應(yīng)用在高速數(shù)據(jù)采集系統(tǒng)中: 以4 分相后 圖6 分相技術(shù)提高系統(tǒng)的數(shù)據(jù)采集率 的80MHz 采樣時(shí)鐘分別作為ADC 的 轉(zhuǎn)換時(shí)鐘, 對(duì)模擬信號(hào)進(jìn)行采樣, 如圖5 所示。 在每一采集通道中, 輸入信號(hào)經(jīng)過 緩沖、調(diào)理, 送入ADC 進(jìn)行模數(shù)轉(zhuǎn)換, 采集到的數(shù)據(jù)寫入存儲(chǔ)器(M EM )。各個(gè) 采集通道采集的是同一信號(hào), 不過采樣 點(diǎn)依次相差90°相位。通過存儲(chǔ)器中的數(shù) 據(jù)重組, 可以使系統(tǒng)時(shí)鐘為80MHz 的采 集系統(tǒng)達(dá)到320MHz 數(shù)據(jù)采集率(如圖6 所示)。 3 總結(jié) 靈活地運(yùn)用時(shí)鐘分相技術(shù), 可以有效地用低頻時(shí)鐘實(shí)現(xiàn)相當(dāng)于高頻時(shí)鐘的時(shí)間性能, 并 避免了高速數(shù)字電路設(shè)計(jì)中一些問題, 降低了系統(tǒng)設(shè)計(jì)的難度。
標(biāo)簽: 時(shí)鐘 分相 技術(shù)應(yīng)用
上傳時(shí)間: 2013-12-17
上傳用戶:xg262122
許多電信和計(jì)算應(yīng)用都需要一個(gè)能夠從非常低輸入電壓獲得工作電源的高效率降壓型 DC/DC 轉(zhuǎn)換器。高輸出功率同步控制器 LT3740 就是這些應(yīng)用的理想選擇,該器件能把 2.2V 至 22V 的輸入電源轉(zhuǎn)換為低至 0.8V 的輸出,並提供 2A 至 20A 的負(fù)載電流。其應(yīng)用包括分布式電源繫統(tǒng)、負(fù)載點(diǎn)調(diào)節(jié)和邏輯電源轉(zhuǎn)換。
上傳時(shí)間: 2013-12-30
上傳用戶:arnold
交直流轉(zhuǎn)換器 AT-VA2-D-A3-DD-ADL 1.產(chǎn)品說明 AT系列轉(zhuǎn)換器/分配器主要設(shè)計(jì)使用于一般訊號(hào)迴路中之轉(zhuǎn)換與隔離;如 4~20mA、0~10V、熱電偶(Type K, J, E, T)、熱電阻(Rtd-Pt100Ω)、荷重元、電位計(jì)(三線式)、電阻(二線式)及交流電壓/電流等訊號(hào),機(jī)種齊全。 此款薄型設(shè)計(jì)的轉(zhuǎn)換器/分配器,除了能提供兩組訊號(hào)輸出(輸出間隔離)或24V激發(fā)電源供傳送器使用外,切換式電源亦提供了安裝的便利性。上方并設(shè)計(jì)了電源、輸入及輸出指示燈及可插拔式接線端子方便現(xiàn)場(chǎng)施工及工作狀態(tài)檢視。 2.產(chǎn)品特點(diǎn) 可選擇帶指撥開關(guān)切換,六種常規(guī)輸出信號(hào)0-5V/0~10V/1~5V/2~10V/4~20mA/ 0~20mA 可自行切換。 雙回路輸出完全隔離,可選擇不同信號(hào)。 設(shè)計(jì)了電源、輸入及輸出LED指示燈,方便現(xiàn)場(chǎng)工作狀態(tài)檢視。 規(guī)格選擇表中可指定選購(gòu)0.1%精度 17.55mm薄型35mm導(dǎo)軌安裝。 依據(jù)CE國(guó)際標(biāo)準(zhǔn)規(guī)范設(shè)計(jì)。 3.技術(shù)規(guī)格 用途:信號(hào)轉(zhuǎn)換及隔離 過載輸入能力:電流:10×額定10秒 第二組輸出:可選擇 精確度: 交流: ≦±0.5% of F.S. 直流: ≦±0.2% of F.S. 輸入耗損: 交流電流:≤ 0.1VA; 交流電壓:≤ 0.15VA 反應(yīng)時(shí)間: ≤ 250msec (10%~90% of FS) 輸出波紋: ≤ ±0.1% of F.S. 滿量程校正范圍:≤ ±10% of F.S.,2組輸出可個(gè)別調(diào)整 零點(diǎn)校正范圍:≤ ±10% of F.S.,2組輸出可個(gè)別調(diào)整 隔離:AC 2.0 KV 輸出1與輸出2之間 隔離抗阻:DC 500V 100MΩ 工作電源: AC 85~265V/DC 100~300V, 50/60Hz 或 AC/DC 20~56V (選購(gòu)規(guī)格) 消耗功率: DC 4W, AC 6.0VA 工作溫度: 0~60 ºC 工作濕度: 20~95% RH, 無結(jié)露 溫度系數(shù): ≤ 100PPM/ ºC (0~50 ºC) 儲(chǔ)存溫度: -10~70 ºC 保護(hù)等級(jí): IP 42 振動(dòng)測(cè)試: 1~800 Hz, 3.175 g2/Hz 外觀尺寸: 94.0mm x 94.0mm x 17.5mm 外殼材質(zhì): ABS防火材料,UL94V0 安裝軌道: 35mm DIN導(dǎo)軌 (EN50022) 重量: 250g 安全規(guī)范(LVD): IEC 61010 (Installation category 3) EMC: EN 55011:2002; EN 61326:2003 EMI: EN 55011:2002; EN 61326:2003 常用規(guī)格:AT-VA2-D-A3-DD-ADL 交直流轉(zhuǎn)換器,2組輸出,輸入交流輸入0-19.99mA,輸出1:4-20mA,輸出2:4-20mA,工作電源AC/DC20-56V
標(biāo)簽: 交直流 轉(zhuǎn)換器
上傳時(shí)間: 2013-11-22
上傳用戶:nem567397
第一章 序論……………………………………………………………6 1- 1 研究動(dòng)機(jī)…………………………………………………………..7 1- 2 專題目標(biāo)…………………………………………………………..8 1- 3 工作流程…………………………………………………………..9 1- 4 開發(fā)環(huán)境與設(shè)備…………………………………………………10 第二章 德州儀器OMAP 開發(fā)套件…………………………………10 2- 1 OMAP介紹………………………………………………………10 2-1.1 OMAP是什麼?…….………………………………….…10 2-1.2 DSP的優(yōu)點(diǎn)……………………………………………....11 2- 2 OMAP Architecture介紹………………………………………...12 2-2-1 OMAP1510 硬體架構(gòu)………………………………….…12 2-2.2 OMAP1510軟體架構(gòu)……………………………………...12 2-2.3 DSP / BIOS Bridge簡(jiǎn)述…………………………………...13 2- 3 TI Innovator套件 -- OMAP1510 ……………………………..14 2-2.1 General Purpose processor -- ARM925T………………...14 2-2.2 DSP processor -- TMS320C55x …………………………15 2-2.3 IDE Tool – CCS …………………………………………15 2-2.4 Peripheral ………………………………………………..16 第三章 在OMAP1510上建構(gòu)Embedded Linux System…………….17 3- 1 嵌入式工具………………………………………………………17 3-1.1 嵌入式程式開發(fā)與一般程式開發(fā)之不同………….….17 3-1.2 Cross Compiling的GNU工具程式……………………18 3-1.3 建立ARM-Linux Cross-Compiling 工具程式………...19 3-1.4 Serial Communication Program………………………...20 3- 2 Porting kernel………………………………………………….…21 3-2.1 Setup CCS ………………………………………….…..21 3-2.2 編譯及上傳Loader…………………………………..…23 3-2.3 編譯及上傳Kernel…………………………………..…24 3- 3 建構(gòu)Root File System………………………………………..…..26 3-3.1 Flash ROM……………………………………………...26 3-3.2 NFS mounting…………………………………………..27 3-3.3 支援NFS Mounting 的kernel…………………………..27 3-3.4 提供NFS Mounting Service……………………………29 3-3.5 DHCP Server……………………………………………31 3-3.6 Linux root 檔案系統(tǒng)……………………………….…..32 3- 4 啟動(dòng)及測(cè)試Innovator音效裝置…………………………..…….33 3- 5 建構(gòu)支援DSP processor的環(huán)境…………………………...……34 3-5.1 Solution -- DSP Gateway簡(jiǎn)介……………………..…34 3-5.2 DSP Gateway運(yùn)作架構(gòu)…………………………..…..35 3- 6 架設(shè)DSP Gateway………………………………………….…36 3-6.1 重編kernel……………………………………………...36 3-6.2 DEVFS driver…………………………………….……..36 3-6.3 編譯DSP tool和API……………………………..…….37 3-6.4 測(cè)試……………………………………………….…….37 第四章 MP3 Player……………………………………………….…..38 4- 1 MP3 介紹………………………………………………….…….38 4- 2 MP3 壓縮原理……………………………………………….….39 4- 3 Linux MP3 player – splay………………………………….…….41 4.3-1 splay介紹…………………………………………….…..41 4.3-2 splay 編譯………………………………………….…….41 4.3-3 splay 的使用說明………………………………….……41 第五章 程式改寫………………………………………………...…...42 5-1 程式評(píng)估與改寫………………………………………………...…42 5-1.1 Inter-Processor Communication Scheme…………….....42 5-1.2 ARM part programming……………………………..…42 5-1.3 DSP part programming………………………………....42 5-2 程式碼………………………………………………………..……43 5-3 雙處理器程式開發(fā)注意事項(xiàng)…………………………………...…47 第六章 效能評(píng)估與討論……………………………………………48 6-1 速度……………………………………………………………...48 6-2 CPU負(fù)載………………………………………………………..49 6-3 討論……………………………………………………………...49 6-3.1分工處理的經(jīng)濟(jì)效益………………………………...49 6-3.2音質(zhì)v.s 浮點(diǎn)與定點(diǎn)運(yùn)算………………………..…..49 6-3.3 DSP Gateway架構(gòu)的限制………………………….…50 6-3.4減少IO溝通……………….………………………….50 6-3.5網(wǎng)路掛載File System的Delay…………………..……51 第七章 結(jié)論心得…
上傳時(shí)間: 2013-10-14
上傳用戶:a471778
注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術(shù)也不精,難免錯(cuò)漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進(jìn)全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號(hào)占空比,從而達(dá)到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個(gè)8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級(jí)精度。但是有時(shí)候我們會(huì)覺得6 個(gè)PWM 引腳不夠用。比如我們做一個(gè)10 路燈調(diào)光, 就需要有10 個(gè)PWM 腳。Arduino Duemilanove 2009 有13 個(gè)數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因?yàn)殡娫春蛯?shí)現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個(gè)周期里面輸出腳高/低電平的時(shí)間比(即是占空比)去獲得給一個(gè)用電器不同 的平均功率。 如圖所示,假設(shè)PWM 波形周期1ms(即1kHz),分辨率1000 級(jí)。那么需要一個(gè)信號(hào)時(shí)間 精度1ms/1000=1us 的信號(hào)源,即1MHz。所以說,PWM 的實(shí)現(xiàn)難點(diǎn)在于需要使用很高頻的 信號(hào)源,才能獲得快速與高精度。下面先由一個(gè)簡(jiǎn)單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個(gè)軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測(cè)試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個(gè)PWM 周期,共循環(huán)255 次。 假設(shè)bright=100 時(shí)候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時(shí)間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設(shè)置了每次for 循環(huán)之后,將bright 加一,并且當(dāng)bright 加到255 時(shí)歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應(yīng)該是大家想的比較多的想法。 然后介紹一個(gè)簡(jiǎn)單一點(diǎn)的。思維風(fēng)格完全不同。不過對(duì)于驅(qū)動(dòng)一個(gè)LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個(gè)For 循環(huán)。它先輸出一個(gè)高電平,然后維持(bright*30)us。然 后輸出一個(gè)低電平,維持時(shí)間((255-bright)*30)us。這樣兩次高低就能完成一個(gè)PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運(yùn)行起來不占CPU 時(shí)間,所以軟件模擬一個(gè)引腳的PWM 完全沒有實(shí)用意義。我們軟件模擬的價(jià)值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當(dāng)一片Arduino 要同時(shí)控制多個(gè)PWM,并且沒有其他重任務(wù)的時(shí)候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個(gè)引腳的初始亮度,可以隨意設(shè)置 int StartPWMPin = 0, EndPWMPin = 13; //設(shè)置D0~D13為PWM 引腳 int PWMResolution = 255; //設(shè)置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個(gè)初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時(shí)候,將brights 置零重新計(jì)數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計(jì)數(shù)一個(gè)PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個(gè)PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級(jí)精度就行。這樣速度就是2x32x64=4ms。就不會(huì)閃了。
上傳時(shí)間: 2013-10-08
上傳用戶:dingdingcandy
特點(diǎn): 精確度0.05%滿刻度±1位數(shù) 可量測(cè)交直流電流/交直流電壓/電位計(jì)/Pt-100/熱電偶/荷重元/電阻等信號(hào) 熱電偶SENSOR輸入種類J/K/T/E/R/S/B可任意規(guī)劃 顯示范圍-19999-99999可任意規(guī)劃 小數(shù)點(diǎn)可任意規(guī)劃 尺寸小,穩(wěn)定性高 CE認(rèn)證
上傳時(shí)間: 2013-10-31
上傳用戶:wsq921779565
注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術(shù)也不精,難免錯(cuò)漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進(jìn)全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號(hào)占空比,從而達(dá)到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個(gè)8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級(jí)精度。但是有時(shí)候我們會(huì)覺得6 個(gè)PWM 引腳不夠用。比如我們做一個(gè)10 路燈調(diào)光, 就需要有10 個(gè)PWM 腳。Arduino Duemilanove 2009 有13 個(gè)數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因?yàn)殡娫春蛯?shí)現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個(gè)周期里面輸出腳高/低電平的時(shí)間比(即是占空比)去獲得給一個(gè)用電器不同 的平均功率。 如圖所示,假設(shè)PWM 波形周期1ms(即1kHz),分辨率1000 級(jí)。那么需要一個(gè)信號(hào)時(shí)間 精度1ms/1000=1us 的信號(hào)源,即1MHz。所以說,PWM 的實(shí)現(xiàn)難點(diǎn)在于需要使用很高頻的 信號(hào)源,才能獲得快速與高精度。下面先由一個(gè)簡(jiǎn)單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個(gè)軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測(cè)試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個(gè)PWM 周期,共循環(huán)255 次。 假設(shè)bright=100 時(shí)候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時(shí)間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設(shè)置了每次for 循環(huán)之后,將bright 加一,并且當(dāng)bright 加到255 時(shí)歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應(yīng)該是大家想的比較多的想法。 然后介紹一個(gè)簡(jiǎn)單一點(diǎn)的。思維風(fēng)格完全不同。不過對(duì)于驅(qū)動(dòng)一個(gè)LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個(gè)For 循環(huán)。它先輸出一個(gè)高電平,然后維持(bright*30)us。然 后輸出一個(gè)低電平,維持時(shí)間((255-bright)*30)us。這樣兩次高低就能完成一個(gè)PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運(yùn)行起來不占CPU 時(shí)間,所以軟件模擬一個(gè)引腳的PWM 完全沒有實(shí)用意義。我們軟件模擬的價(jià)值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當(dāng)一片Arduino 要同時(shí)控制多個(gè)PWM,并且沒有其他重任務(wù)的時(shí)候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個(gè)引腳的初始亮度,可以隨意設(shè)置 int StartPWMPin = 0, EndPWMPin = 13; //設(shè)置D0~D13為PWM 引腳 int PWMResolution = 255; //設(shè)置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個(gè)初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時(shí)候,將brights 置零重新計(jì)數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計(jì)數(shù)一個(gè)PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個(gè)PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級(jí)精度就行。這樣速度就是2x32x64=4ms。就不會(huì)閃了。
上傳時(shí)間: 2013-10-23
上傳用戶:mqien
最新的支持向量機(jī)工具箱,有了它會(huì)很方便 1. Find time to write a proper list of things to do! 2. Documentation. 3. Support Vector Regression. 4. Automated model selection. REFERENCES ========== [1] V.N. Vapnik, "The Nature of Statistical Learning Theory", Springer-Verlag, New York, ISBN 0-387-94559-8, 1995. [2] J. C. Platt, "Fast training of support vector machines using sequential minimal optimization", in Advances in Kernel Methods - Support Vector Learning, (Eds) B. Scholkopf, C. Burges, and A. J. Smola, MIT Press, Cambridge, Massachusetts, chapter 12, pp 185-208, 1999. [3] T. Joachims, "Estimating the Generalization Performance of a SVM Efficiently", LS-8 Report 25, Universitat Dortmund, Fachbereich Informatik, 1999.
上傳時(shí)間: 2013-12-16
上傳用戶:亞亞娟娟123
系統(tǒng)資源(r1…rm),共有m類,每類數(shù)目為r1…rm。隨機(jī)產(chǎn)生進(jìn)程Pi(id,s(j,k),t),0
上傳時(shí)間: 2014-01-27
上傳用戶:天誠(chéng)24
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1