<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于NiosII的多通道PWM信號測量/產(chǎn)生器節點(diǎn)設計

基于NiosII的多通道PWM信號測量/產(chǎn)生器節點(diǎn)設計

作者:代剛 邵貝貝 清華大學(xué)freescale MCU/DSP應用研究中心(北京100084) 時(shí)間:2008-07-08 來(lái)源:電子產(chǎn)品世界 收藏

  具體實(shí)現的流程如下:

  ·根據具體需要依次配置每個(gè)通道為測量或者產(chǎn)生通道,由配置控制器實(shí)現,該控制器與處理器的控制器相連。

  ·使用一個(gè)基準地址計數器給出的循環(huán)地址信號對所有的RAM讀寫(xiě)進(jìn)行同步,該基準地址計數器給出不同延遲周期的地址計數,以修正RAM讀取產(chǎn)生的延時(shí)。

  ·PWM產(chǎn)生:將高/低電平周期數寫(xiě)入預置高/低電平計數器,計數器自加器按基準地址計數器給出的修正延遲的地址讀出計數并+1后重新寫(xiě)入計數器RAM;比較器按基準地址計數器給出的修正延遲地址計數讀出預置高/低電平周期數進(jìn)行比較決定輸出的是高/低電平。

  這種方法得到頻率為:

本文引用地址:http://dyxdggzs.com/article/85401.htm

  其中為該模塊的時(shí)鐘頻率,為預置數計數器,采用循環(huán)方式時(shí)一個(gè)周期的時(shí)間為通道數與預置數和之積;本節點(diǎn)中,因此,滿(mǎn)足測速測距模塊0~10KHz的設計需要;若需要更高頻率,可以提高fCLK或者進(jìn)行通道分組,以降低每組的Nch,占空比的精度與頻率有關(guān),頻率越低,可調精度越高。

  ·PWM測量:是PWM產(chǎn)生的逆過(guò)程,測量的精度與產(chǎn)生的PWM信號的精度相同。每隔一個(gè)脈沖更新一次測得的周期和占空比值,因此可用于周期快速變化PWM信號的測量。

  ·死區控制器:僅僅對應于PWM產(chǎn)生部分,該模塊輸出的PWM信號初始間隔為1個(gè)TCLK,根據具體的需要配置相應的延時(shí)即可。

節點(diǎn)軟件設計

  上位機通過(guò)RS-485發(fā)送命令包來(lái)控制智能節點(diǎn)的動(dòng)作,該命令包順序由8bit標識碼,8bit包長(cháng)度,16bit目標節點(diǎn)號,16bit包編號,命令區和16bit CRC16校驗碼組成,處理器負責解包,校驗CRC碼是否正確,并且根據命令動(dòng)作PWM控制器。當需要讀取PWM周期和占空比測量值時(shí),處理器還需要把從高/低電平計數保存器RAM讀出的值組包發(fā)送給上位機。

  NiosII處理器采用中斷方式接受通過(guò)RS-485總線(xiàn)發(fā)來(lái)的命令包,中斷處理通過(guò)狀態(tài)機的方式處理每一個(gè)接收到的字節,具體功能描述如下:

  ·檢查標識碼,檢查是否為智能PWM節點(diǎn)類(lèi)型的命令包,啟動(dòng)狀態(tài)機,并打開(kāi)定時(shí)器,防止當命令包不完整時(shí)接受狀態(tài)機無(wú)法回到初始狀態(tài);

  ·讀取包長(cháng)度信息,檢查是否目標為本節點(diǎn),是則記錄包編號;

  ·如果標識碼不是智能PWM節點(diǎn)類(lèi)型的命令包則不對命令進(jìn)行處理,是則將命令放入緩沖中待處理;

  ·檢查CRC校驗碼是否正確,如正確,則將緩沖中的命令寫(xiě)入命令隊列;如果不正確,則將錯誤信息寫(xiě)入待發(fā)送信息隊列。

  命令包括配置某位為PWM測量/產(chǎn)生,配置某位的預置數計數器,讀取某位的計數保存器三類(lèi)。

  主循環(huán)中完成的工作是:

  ·檢查命令隊列中是否有未處理的命令并處理;

  ·檢查待發(fā)送信息隊列長(cháng)度是否達到預定值,是則啟動(dòng)一次發(fā)送,將待發(fā)送信息打包發(fā)送給上位機。

實(shí)驗結果

  使用ModelSim進(jìn)行仿真,配置使用了10通道作為PWM信號輸出,隨機賦值了給每個(gè)通道不同的周期和占空比,得到的仿真結果如圖4所示。


圖4 智能PWM信號產(chǎn)生器仿真結果圖

  將這10個(gè)通道與另外配置為PWM信號測量的10個(gè)通道相連接,進(jìn)行周期和占空比測量,得到的高低電平周期測量結果與實(shí)際值誤差限為,由此導致的頻率誤差為:

當取f=10KHz時(shí),Δf≈200Hz;取f=1KHz時(shí),Δf≈2Hz,頻率越低,測量精度越高。

結語(yǔ)

  針對于列車(chē)控制系統半實(shí)物仿真平臺測速測距模塊的多通道PWM信號測量/產(chǎn)生的要求,本文提出了一種利用NiosII軟核處理器替代通訊用MCU的智能多通道PWM信號測量/產(chǎn)生器的設計方案,給出了利用實(shí)現多通道PWM信號測量/產(chǎn)生器模塊的方法,并且編寫(xiě)了NiosII處理器的通訊控制軟件。

  本設計將應用在北京全路通通信信號研究設計院列控實(shí)驗室的實(shí)物測控接口平臺中,連接測速測距模塊,將仿真端與實(shí)物端相連。除此之外,本設計還可應用在多電機控制等領(lǐng)域。

參考文獻:

1.  徐光輝、程東旭、黃如等,基于的嵌入式開(kāi)發(fā)與應用,電子工業(yè)出版社, 2006.
2.  李旭、謝運祥,PWM技術(shù)實(shí)現方法綜述,電源技術(shù)應用,2005,02:40~43

pwm相關(guān)文章:pwm原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: NiosII PWM FPGA SOPC 200807

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>