<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 智能測控電路片上系統(tǒng)的設(shè)計(jì)與仿真

          智能測控電路片上系統(tǒng)的設(shè)計(jì)與仿真

          作者: 時(shí)間:2008-05-06 來源:中國測控網(wǎng) 收藏

            1 引言

          本文引用地址:http://www.ex-cimer.com/article/82149.htm

            控制電路系統(tǒng)在工業(yè)控制、各種消費(fèi)類電子產(chǎn)品獲得了廣泛的應(yīng)用。它一般是以單片機(jī)為核心,外加模擬信號調(diào)理、模數(shù)轉(zhuǎn)換、人機(jī)接口(包括按鍵和數(shù)碼顯示等)、功率輸出等幾部分組成,其系統(tǒng)框圖如圖1。測控系統(tǒng)是基于來設(shè)計(jì)的,體積和功耗都較大。特別是為了使系統(tǒng)能夠應(yīng)用在各種惡劣的工作環(huán)境下,設(shè)計(jì)者通常要化大量的時(shí)間和精力來研究和實(shí)施各種硬件和軟件的抗干擾措施。另外,這些系統(tǒng)都具有大多數(shù)的共性,設(shè)計(jì)師很多的工作都是重復(fù)的。

            2 系統(tǒng)結(jié)構(gòu)

            隨著集成電路的設(shè)計(jì)技術(shù)和深亞微米制造技術(shù)的迅速發(fā)展,集成電路已進(jìn)入片上系統(tǒng)時(shí)代,且由數(shù)字全面轉(zhuǎn)向混合信號。本文的工作是將控制系統(tǒng)所需的信號采集、轉(zhuǎn)換、存儲、處理和I/O等各個(gè)部分功能集成于單芯片系統(tǒng)之中。高度集成的單片器件比用分立的IC成本低、功耗小,占據(jù)面積?。煌瑫r(shí)簡化了PCB系統(tǒng)設(shè)計(jì)和提高了系統(tǒng)的抗干擾能力。系統(tǒng)芯片的應(yīng)用簡單、通用性好,用戶只要接不同的傳感器和少量器件即可構(gòu)成完整的測量控制系統(tǒng),縮短了產(chǎn)品的上市時(shí)間。通用測量控制系統(tǒng)見圖1。

            為了使單芯片智能測控系統(tǒng)具有良好的通用性,我們采取了基于微控制器內(nèi)核的設(shè)計(jì)方案。系統(tǒng)芯片中包括微控制器、儀用放大電路、A/D轉(zhuǎn)換、EEPROM、ROM、RAM及驅(qū)動邏輯等。

            2.1微控制器內(nèi)核

            在工業(yè)控制、各種中低檔的消費(fèi)類電子產(chǎn)品中,8位微控制器在目前仍然占相當(dāng)大的比例,而且在未來的相當(dāng)一段時(shí)間內(nèi)仍然會以8位為主;其實(shí)現(xiàn)技術(shù)成熟,結(jié)構(gòu)簡單。按指令系統(tǒng),微控制器可以分為CISC,RISC和類RISC等幾種。CISC型代碼密度高,但絕大多數(shù)指令的需要多個(gè)時(shí)鐘周期完成,實(shí)現(xiàn)比較復(fù)雜。RISC型硬件實(shí)現(xiàn)比較簡單,但其代碼密度較低;類RISC類型則具備了代碼密度高和指令單周期完成等特點(diǎn)。

            基于以上考慮自主開發(fā)了8位類RISC型的微控制器IP軟核,其結(jié)構(gòu)框圖如圖2所示。為了利用現(xiàn)有的編譯工具,微控制器的指令和Microchip公司的PIC16C62單片機(jī)的指令兼容。微控制器有35條單字、單周期的14bit指令,除了程序分支指令外其他指令都是單周期指令。采用了Harvard結(jié)構(gòu),兩級流水線設(shè)計(jì)。具有引腳電平變化中斷、外部邊沿中斷及定時(shí)器中斷三類中斷源,8級硬件堆棧。

            2.2  A/D轉(zhuǎn)換器

            A/D轉(zhuǎn)換器有并行、逐次逼近、積分型等多種類型,其各有優(yōu)缺點(diǎn)并能滿足不同的具體應(yīng)用要求。在大多數(shù)工業(yè)測控及消費(fèi)類產(chǎn)品應(yīng)用中,時(shí)間量級都在ms上,但都要求有較高的精度和極高的可靠性及抗干擾能力。所以決定用雙積分型的A/D轉(zhuǎn)換器來實(shí)現(xiàn)模數(shù)轉(zhuǎn)換功能。設(shè)計(jì)的雙積分A/D轉(zhuǎn)換器的結(jié)構(gòu)如圖3所示,其信號的控制時(shí)序如圖4所示

            為了減少積分器的失調(diào)的漂移的影響,采用補(bǔ)償測量法,在電路中設(shè)置電子開關(guān)S3、S4和零漂移記憶電容。設(shè)輸入的信號為Vi,基準(zhǔn)電壓為-Vr。雙積分A/D轉(zhuǎn)換器工作分為三個(gè)階段:

            一是零補(bǔ)償期,將開關(guān)S3和S4接通,S1、S2斷開。積分器的開環(huán)增益很大,則其輸出基本上等于比較器的失調(diào)電壓e2。

            二是信號定時(shí)積分階段,將開關(guān)S1接通,S4、S3、S2斷開,在一個(gè)固定的時(shí)間內(nèi)對被測電壓進(jìn)行積分。在開始的瞬間,積分器的輸出為e2。因此積分器從e2開始積分,經(jīng)時(shí)間Td后進(jìn)入第三個(gè)階段,此時(shí)積分器的輸出為

            三是反向積分階段,將開關(guān)S2接通,S3、S1斷開,將積分器接到基準(zhǔn)電壓上。當(dāng)積分器的輸出返回到e2時(shí),比較器翻轉(zhuǎn),設(shè)此積分區(qū)間的時(shí)間為Tx,有

            可以看出整個(gè)積分過程不受失調(diào)和漂移的影響。

            假定信號定時(shí)積分、基準(zhǔn)反向階段計(jì)數(shù)器的計(jì)數(shù)分別為N1、N2,則有N2=Vi*N1/Vr ,在本系統(tǒng)中取N1=10000 Vr=1.0000V。采樣結(jié)果表達(dá)式與時(shí)鐘頻率、積分電阻電容無關(guān),只取決于基準(zhǔn)電壓。把計(jì)數(shù)器的時(shí)鐘頻率取為工頻信號的整數(shù)倍,則對信號的積分時(shí)間為工頻周期的整數(shù)倍,可把由工頻噪聲的誤差減小到最小,從而有效地抑制電網(wǎng)的工頻干擾。

            計(jì)數(shù)器采用CPU的TMR1,TMR1是一個(gè)16位的定時(shí)/計(jì)數(shù)器,由TMR1H、TMR1L兩個(gè)寄存器組成,為增1計(jì)數(shù)。為了方便與A/D轉(zhuǎn)換器接口,在標(biāo)準(zhǔn)的TMR1上增加了一個(gè)比較器輸出端的門控信號BUSY。將定時(shí)器的計(jì)數(shù)初值設(shè)置為0xd8ef,這樣經(jīng)過定時(shí)積分階段計(jì)數(shù)器值將變?yōu)榱?,反向積分階段結(jié)束后計(jì)數(shù)器的值即為采樣結(jié)果。通過用I/O口RB1發(fā)脈沖來啟動A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后通過BUSY信號來停止計(jì)數(shù)和向CPU申請中斷。在中斷程序中讀出采樣值和重新啟動A/D轉(zhuǎn)換。信號BUSY、S3/S4、計(jì)數(shù)器的計(jì)數(shù)值通過采集時(shí)序控制邏輯模塊來實(shí)現(xiàn)對S1、S2開關(guān)的控制。

            2.3 存儲單元

            為了配合微控制器的使用,設(shè)計(jì)了2K×14bit的程序存儲單元及128×8bit數(shù)據(jù)存儲單元。另外集成一定的EEPROM以滿足系統(tǒng)的參數(shù)的輸入和改變,如:傳感器的標(biāo)度轉(zhuǎn)換系數(shù)、控制算法程序參數(shù)。

            2.4 擴(kuò)展端口的實(shí)現(xiàn)

            實(shí)際應(yīng)用之中,可能會在微控制器的外圍集成一些特殊其他的IP模塊。IP模塊與微控制器的通信是通過微控制器的尋址方式來進(jìn)行的,通過對IP模塊的可尋址單元的讀寫來實(shí)現(xiàn)對IP模塊的數(shù)據(jù)存取。對于每一個(gè)IP模塊分配唯一性的地址單元保證其數(shù)據(jù)訪問的唯一性。多個(gè)IP模塊的集成可能會使芯片的端口數(shù)目大大增加。對于外接模塊的端口可采用與微控制器的通用I/O端口復(fù)用的方法 。

            2.5 輸出顯示

            數(shù)碼管具有壽命長、耐腐蝕、抗震動、防爆防潮、可靠性高、可視角度大等優(yōu)點(diǎn),被廣泛應(yīng)用于各種測控儀表中。利用微控制器的定時(shí)器中斷的方法進(jìn)行數(shù)碼管的動態(tài)顯示刷新。

            2.6 低功耗設(shè)計(jì)

            為了使測控芯片滿足便攜式測控系統(tǒng)低功耗的需求,在設(shè)計(jì)時(shí)必須充分考慮降低功耗的要求,微控制器設(shè)有SLEEP指令,在SLEEP狀態(tài)之前微控制器可關(guān)斷傳感器、前級放大電路及基準(zhǔn)電源等部分的電源。另外在邏輯設(shè)計(jì)時(shí),采用門控時(shí)鐘、異步邏輯、減少毛刺等方法來降低功耗。
          3 仿真與設(shè)計(jì)

            3.1系統(tǒng)的仿真

            民首先微控制器核的軟件程序?qū)懗蓞R編或C語言代碼,然后利用PIC16C62的編譯系統(tǒng)生成HEX文件。為了能夠被EDA工具的所用,我們將將HEX文件轉(zhuǎn)換成了Verilog類型的文件。方法是分析生成的HEX文件格式,采用VB6.0高級語言將其轉(zhuǎn)換成 .v文件,其中實(shí)現(xiàn)采用case語句的方式來實(shí)現(xiàn)。其形式如下:  


            下面的波形為采用ACTIVE-HDL4.2仿真所產(chǎn)生,圖中 portbinout(0)信號(來自BUSY信號)下降沿產(chǎn)生中斷。在中斷中將計(jì)數(shù)值讀出并將TMR1定時(shí)器重新賦值0xd8ef,隨后將讀出的值用PORTC逐位用HEX方式輸出。

          3.2 硬件驗(yàn)證平臺

          為了對系統(tǒng)的功能進(jìn)行驗(yàn)證,設(shè)計(jì)了FPGA和通用器件相結(jié)合的硬件仿真系統(tǒng),將微控制器內(nèi)核,ROM,RAM,A/D轉(zhuǎn)換的數(shù)字部分及數(shù)碼管驅(qū)動等邏輯部分采用FPGA的邏輯來實(shí)現(xiàn),而模擬部分采用一般元器件來實(shí)現(xiàn),框圖如圖3 所示。FPGA采用Xlinx公司的10萬門的XC2S100,程序存儲器及寄存器RAM采用其片內(nèi)BlockRAM來實(shí)現(xiàn)。FPGA的編程文件存儲在一片PROM之中。運(yùn)算放大器用三片OP07構(gòu)成儀用放大器來實(shí)現(xiàn);A/D轉(zhuǎn)換器的模擬部分用運(yùn)算放大器和阻容元件構(gòu)成。

            3.3 系統(tǒng)的設(shè)計(jì)

            系統(tǒng)經(jīng)過驗(yàn)證后,便進(jìn)行后端版圖設(shè)計(jì)。后端設(shè)計(jì)把每一個(gè)元件的電路表示轉(zhuǎn)換成集合表示,同時(shí)元件間連接的線網(wǎng)也被轉(zhuǎn)換成幾何連線圖形。為了處理問題的規(guī)??s小,我們先將系統(tǒng)分成數(shù)字部分、ROM及RAM,模擬部分等幾個(gè)模塊,再為每個(gè)模塊和整個(gè)芯片選擇一個(gè)好的布圖方案。接下來完成模塊間的互連并進(jìn)一步優(yōu)化布線結(jié)果,最后進(jìn)行壓縮完成布線后的優(yōu)化處理過程,進(jìn)一步減小芯片的面積。

            4 結(jié)束語

            本文闡述了控制集成電路的設(shè)計(jì)方法,設(shè)計(jì)過程中充分考慮了一般智能測量控制的一般需求,注重通用性,從而使智能測控系統(tǒng)芯片只需外接少量的器件即可形成測控系統(tǒng),且進(jìn)行了基于FPGA系統(tǒng)的設(shè)計(jì)驗(yàn)證。著重分析了設(shè)計(jì)過程中需要考慮的幾個(gè)問題,如:微控制器的選擇、A/D轉(zhuǎn)換器的選擇。



          關(guān)鍵詞: 智能測量 PCB板 SoC

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();