基于NiosII的多通道PWM信號測量/產(chǎn)生器節點(diǎn)設計
具體實(shí)現的流程如下:
·根據具體需要依次配置每個(gè)通道為PWM測量或者產(chǎn)生通道,由PWM配置控制器實(shí)現,該控制器與NiosII處理器的PWM控制器相連。
·使用一個(gè)基準地址計數器給出的循環(huán)地址信號對所有的RAM讀寫(xiě)進(jìn)行同步,該基準地址計數器給出不同延遲周期的地址計數,以修正RAM讀取產(chǎn)生的延時(shí)。
·PWM產(chǎn)生:將高/低電平周期數寫(xiě)入預置高/低電平計數器,計數器自加器按基準地址計數器給出的修正延遲的地址讀出計數并+1后重新寫(xiě)入計數器RAM;比較器按基準地址計數器給出的修正延遲地址計數讀出預置高/低電平周期數進(jìn)行比較決定輸出的是高/低電平。
這種方法得到頻率為:
其中為該模塊的時(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校驗碼組成,NiosII處理器負責解包,校驗CRC碼是否正確,并且根據命令動(dòng)作PWM控制器。當需要讀取PWM周期和占空比測量值時(shí),NiosII處理器還需要把從高/低電平計數保存器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)生器的設計方案,給出了利用FPGA實(shí)現多通道PWM信號測量/產(chǎn)生器模塊的方法,并且編寫(xiě)了NiosII處理器的通訊控制軟件。
本設計將應用在北京全路通通信信號研究設計院列控實(shí)驗室的實(shí)物測控接口平臺中,連接測速測距模塊,將仿真端與實(shí)物端相連。除此之外,本設計還可應用在多電機控制等領(lǐng)域。
參考文獻:
1. 徐光輝、程東旭、黃如等,基于FPGA的嵌入式開(kāi)發(fā)與應用,電子工業(yè)出版社, 2006.
2. 李旭、謝運祥,PWM技術(shù)實(shí)現方法綜述,電源技術(shù)應用,2005,02:40~43
pwm相關(guān)文章:pwm原理
評論