時間:2009-04-23 14:45:44來源:ronggang
圖2 分頻模塊仿真波形[/align]
2) ANF信號的產生:ANF信號每隔20ms發送一次,每次發送脈寬為10個時鐘周期。ANF信號的產生可以分成兩部分實現,首先產生每隔20ms的脈沖信號,然后把此脈沖信號的寬度變成10個時鐘周期。
(2)串行數據的發送與接收
1) 串行數據的產生:根據通信協議的要求,測速定位單元每隔20ms應串行移出72bits數據。如果每個發送時鐘周期移出一位,則需要72個時鐘周期才能全部移出,因此門控信號也需要保持72個時鐘周期的寬度。
2) 串行數據的接收:同步串行接收一幀(72bits)數據與異步串行接收是不同的。由于收發時鐘不是異步的,因此不能以判斷在空閑態以后出現的第一個低電平作為一幀的開始,而是以門控信號(UEF)的上升沿作為一幀數據到來的判斷。為了避免數據傳輸過程中毛刺的影響,仍以波特率時鐘的16倍進行接收,即每隔16個波特率時鐘周期采樣一次,因此每個數據將在傳輸的每一位的中點處被采樣。
串行數據發送與接受的仿真時序圖如圖3所示。
[align=center]
圖3 同步485仿真時序圖[/align]
1.3 收發器與控制器之間的數據交換
基于RS-485的同步通信時序是用FPGA作為通信收發器來模擬的,但是通信數據最終是與系統的CPU進行數據交換的。在該通信方式的設計中,通信雙方均采用TI公司的TMS320F2812作為處理器,即通信的控制器。FPGA與DSP的數據交換必須滿足一定的時序,才能保證測速定位單元向車載無線電控制單元實時地傳輸位置及速度信號。本系統中,DSP控制器采用C語言進行軟件設計。
(1) 測速定位單元側DSP與FPGA的數據交換
TMS320F2812的外部存儲器XINTF可供選擇的外部地址空間有XINTF0,XINTF2,XINTF6。其中XINTF0 使用XZCS0AND1作為片選信號,外部存儲器擴展空間為8K;XINTF2與XINTF6分別使用XZCS2、XZCS6AND7作為片選信號,外部存儲器擴展空間均為0.5M。測速定位單元在發送位置速度信息時,是通過DSP的數據線傳輸到FPGA,DSP根據相應的外部存儲器片選信號找出對應的地址,在從底層傳感器得到一個新的定位數據后寫入該地址。相對應的硬件連接框圖如圖4所示:
[align=center]
圖4 車輛測速定位單元DSP控制器向FPGA收發器寫數據的硬件連接示意圖[/align]
根據協議要求,定位信息每次發送時包括5個字節的用戶數據和2個字節的CRC校驗,因此16bits數據線至少需要連續發送四次才能將底層的定位信息完整地傳送到FPGA。
為了減少硬連線,這里只連接地址線的高五位,對其中的低四位地址線進行4-16譯碼,最高位地址線作為該譯碼器的使能信號。取對應于一個外部存儲器片選信號的四個地址,比如片選信號XZCS2為低(對應的外部存儲器地址范圍:0x080000—0x100000),即可選用0xe0000,0xe4000,0xe8000,0xec000四個地址作為DSP向FPGA寫數據的地址。
由于每個不同的地址都對應一個地址譯碼值,當四個譯碼值都出現后才可認為一次定位信息傳送完成。這時把連續接收到的七個字節加上幀頭及幀尾作為測速定位單元發送給車載無線電控制單元的一幀數據。相對應的地址譯碼值如表2所示。
表2 地址譯碼值
圖5 車載無線電傳輸單元DSP控制器從FPGA收發器讀數據的硬件連接示意圖[/align]
由于FPGA傳送到DSP的一幀數據為72bits,因此通過16bits數據線傳輸需要分5次才能傳送完,每16bits數據到達時產生一次外部中斷。設波特率時鐘為512k,假設來自定位單元完整的一幀數據為0x02123456789abcde03,車載無線電單元通過16bits數據線分次轉發到DSP的數據則為0x0002, 0x1234, 0x5678, 0x9abc,0xde03 。數據及中斷信號產生的時序如圖6所示。由圖6可以看出,每對應移出一次dataout,都會相應地發出一個外部中斷信號xint1,DSP一旦接收到外部中斷便在中斷服務子程序中從16bits數據線讀取信號值。為了完整的接收一幀信號,可在外部中斷服務程序中定義一個16級FIFO,當從FIFO的最底層讀出的數據為0x02時,便可以判斷一幀數據的開始(若在用戶數據和校驗值中存在0x02則要進行相應的字符轉義),依次接收以下的數據便得到完整的一幀定位信息。
[align=center]
圖6 車載無線電傳輸單元DSP控制器從FPGA收發器讀數據的仿真波形[/align]
2 通信雙方的原理圖
根據以上對同步485實現方法的描述,在ISE中利用ECS工具所描繪的頂層原理圖如下,包括測速定位單元同步數據發送和車載無線電控制單元同步數據接收。
定位測速單元同步數據發送方的原理圖如圖7所示。
[align=center]
圖7 同步數據發送方原理圖[/align]
圖7中,addr_decode為地址譯碼模塊,用于從DSP完整地接收一幀定位信息;tra485data為串行數據及門控信號發送模塊。其中,din(15:0)直接來自DSP的16bits數據線;addr(3:0)與DSP的A17-A14地址線相連;clkin及anfin信號由車載無線電控制單元提供。輸出的dataout及uefout經過輸出緩沖及差分電平轉換后送給車載無線電控制單元。
車載無線電控制單元同步數據接收方的原理圖如圖8所示。
[align=center]
圖8 同步數據接收方原理圖[/align]
圖8中,divide_512k為發送時鐘產生模塊,產生通信所需的波特率時鐘;anf_shift 用于產生無線電請求信號;rec485data用于串行接收定位信息并通過dataconvert模塊轉發到通信控制器。其中,Dataout(15:0)直接通過數據線連到DSP,Xint1則連到DSP的外部中斷1。anfout和clkout由輸入的晶振頻率分頻后得到,經輸出緩沖及差分電平轉換后送給車輛測速定位單元。
3 結束語
在高速磁浮列車特殊的通信環境中,基于RS-485物理層的同步通信方式體現出其抗干擾性強、實時性好,誤碼率低等優點,且實現原理簡單,硬件連接也不復雜。利用FPGA所實現的通信收發器設計靈活、可靠性高,其功能在實際應用中已得到驗證,且效果良好。
參考文獻:
[1] 張衛寧. TMS320C28x系列DSP的CPU與外設(上)(下)[M]. 北京:清華大學出版社,2005.1.
[2] 王誠,薛小剛. FPGA/CPLD設計工具-Xilinx ISE使用詳解[M]. 北京:人民郵電出版社,2005.1.
[3] 李朝青. PC機及單片機數據通信技術[M]. 北京:北京航空航天大學出版社,2000.12.
標簽:
上一篇:一種基于特殊應用的無線傳感...
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-09-08
2025-08-06
2025-07-08
2025-06-30
2025-06-16
2025-06-09