由於採用了arm架構取代fpga中的nios ,因此在環路濾波的時序架構上會出現新的問題,這次遇到的問題就是目前的新架構帶來的。
原始的fpga+nios架構中,每個1ms的累積量在進入環路濾波時是採用輪巡加觸發的方式,在fpga完成1ms積分後,將積分完成標誌拉高,同時nios不斷對所有跟蹤通道的積分完成標誌進行輪巡,一旦某個通道標誌為高,就會讀取積分結果並將積分標誌拉低,輪巡一周和讀取與拉低的時間遠小於1ms,因此可以確保多個通道在正常情況下不間斷的完成每個通道的操作。
在fpga+arm的架構中,arm不能夠將全部時間都放在nios環路上(需要進行定位解算),因此採用計數器進行1ms一次更新的方式,arm計數器在1ms週期下每個週期對fpga的1ms累積量進行一次讀取拉低,確保每個環路1ms裡面完成一次更新。
看似沒有問題,但是在實際過程中,arm會出現1s只跑了500次的情況,這是什麼帶來的?
問題在於fpga的積分1ms與arm計數得到的1ms並不相等。積分1ms是pn碼相關得到,而arm1ms是時鐘累加得到,fpga的1ms有可能因為都卜勒的原因大於1ms,在這種情況下,有可能出現arm的1ms頭和尾都在積分1ms的時序段內,拉低後fpga還沒到積分完成時間,倒置arm每次都不能對應上,這也是為什麼geo的衛星一般都不會出現這種情況的原因。
解決方案就是提高arm的處理頻率,確保arm處理週期比fpga小,現在就穩定多了。
設定LINUX系統時間的更新同步
首先有兩種方法 第一種 是開啟ntp服務 1.service ntp start 2.chkconifg ntp on 開啟自動啟動 第二種 用計畫任務來更新 1.crontab e 在裡面寫計畫任務 15 usr sbin ntpdate 0.centos.pool.ntp.org sbin hw...
設定LINUX系統時間的更新同步
首先有兩種方法 第一種 是開啟ntp服務 chkconifg ntp on 開啟自動啟動 第二種 用計畫任務來更新 crontab e 在裡面寫計畫任務 15 usr sbin ntpdate 0.centos.pool.ntp.org sbin hwclock w 注 0.centos.pool....
mysql自動管理資料的建立時間和更新時間
首先在建立表的時候 create table testmysqltime id int primary key auto increment comment 主鍵id username varchar 10 not null comment 使用者名稱 password varchar 10 not...