亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng)的制作方法

文檔序號:12719514閱讀:523來源:國知局
一種UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng)的制作方法與工藝

本發(fā)明屬于通訊技術領域,尤其涉及一種UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng)。



背景技術:

所謂的異步通信就是指通信雙方并不需要時鐘信號進行同步,而是按照約定好的波特率將數(shù)據(jù)一位一位進行傳輸,其中包括起始位(傳輸數(shù)據(jù)的開始標志)、數(shù)據(jù)位、校驗位(檢驗數(shù)據(jù)傳輸?shù)恼_與否)和終止位(數(shù)據(jù)傳輸結束的標志)。但是當接收系統(tǒng)的數(shù)據(jù)幀速率與異步串行數(shù)據(jù)幀速率相同時,為了準確有效的接收串行異步發(fā)送的數(shù)據(jù)幀數(shù)據(jù),就必須進行合理的處理。

綜上所述,現(xiàn)有技術存在的問題是:

由于接收轉發(fā)的數(shù)據(jù)幀速率與發(fā)送方的數(shù)據(jù)幀速率相同,直接采用現(xiàn)有的UART協(xié)議無法保證數(shù)據(jù)的正確接收轉發(fā),因此必須進行處理。



技術實現(xiàn)要素:

針對現(xiàn)有技術存在的問題,本發(fā)明提供了一種UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng)。

本發(fā)明是這樣實現(xiàn)的,一種UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng),包括:UART模塊、乒乓式接收控制模塊Read_UART_to_RAM、存儲控制模塊MUX_cmd_RAM12_signals、RAM1模塊、RAM2模塊、選擇控制模塊generate_flag_sel和2選1模塊MUX_cmd_to_RS422_frame;

所述UART模塊與乒乓式接收控制模塊Read_UART_to_RAM連接,用于異步、串行數(shù)據(jù)Rx通過UART接口模塊后,按照UART數(shù)據(jù)傳輸格式輸出8位數(shù)據(jù)位并且產(chǎn)生一個接收準備控制信號rxrdy;

所述乒乓式接收控制模塊Read_UART_to_RAM與存儲控制模塊MUX_cmd_RAM12_signals連接,用于對50Hz的時鐘頻率進行降頻處理,分別處理為兩個25Hz的時鐘頻率Data_end1和Data_end2;還用于產(chǎn)生RAM的時鐘和地址,所述RAM的時鐘和地址包括WRAM_CLK1、WRAM_CLK2和WRAM_A[5..0];還用于將接收到的UART模塊傳輸?shù)臄?shù)據(jù)合并成16位RAM_DATA[15..0];

所述存儲控制模塊MUX_cmd_RAM12_signals分別與RAM1模塊、RAM2模塊連接,用于接收乒乓式接收控制模塊Read_UART_to_RAM產(chǎn)生的信號WRAM_CLK1、WRAM_CLK2、WRAM_A[15..0]、Data_end1、Data_end2和外部輸入的讀RAM地址rd_ram_add;經(jīng)過處理后,產(chǎn)生的cmd_clk1、cmd1_add[4..0]輸出控制RAM1的時鐘和地址,同時產(chǎn)生的cmd_clk2、cmd2_add[4..0]輸出控制RAM2的時鐘和地址;

所述RAM1模塊與2選1模塊MUX_cmd_to_RS422_frame連接,用于接收存儲控制模塊MUX_cmd_RAM12_signals的cmd_clk1時鐘信號、cmd1_add[4..0]地址信號,經(jīng)處理后,輸出寫入RAM的數(shù)據(jù)cmd_ram1_data[15..0];

所述RAM2模塊與2選1模塊MUX_cmd_to_RS422_frame連接,用于接收存儲控制模塊MUX_cmd_RAM12_signals的cmd2_clk2寫時鐘信號、cmd2_add[4..0]寫地址信號,經(jīng)處理后,輸出寫入RAM的數(shù)據(jù)cmd_ram2_data[15..0];

所述選擇控制模塊generate_flag_sel與2選1模塊MUX_cmd_to_RS422_frame連接,用于接收存儲控制模塊MUX_cmd_RAM12_signals產(chǎn)生的Data_end1、Data_end2信號和外部采集控制輸入信號adc_end,產(chǎn)生輸出選擇控制信號flag_sel信號;

所述2選1模塊MUX_cmd_to_RS422_frame與選擇控制模塊generate_flag_sel連接,用于接收RAM1模塊輸出的cmd_ram1_data[15..0]、RAM2模塊輸出的cmd_ram2_data[15..0]和選擇控制模塊flag_sel輸出的flag_sel信號,最終輸出sdata[15..0]信號。

進一步,在UART模塊輸出的8位數(shù)據(jù)位分別包括起始位、5位數(shù)據(jù)位、校驗位和停止位。

進一步,RAM1模塊輸入端還接收乒乓式接收控制模塊Read_UART_to_RAM產(chǎn)生的Data_end1和產(chǎn)生的16位要寫入RAM1的數(shù)據(jù)RAM_DATA[15..0];RAM2模塊輸入端還接收乒乓式接收控制模塊Read_UART_to_RAM產(chǎn)生的Data_end2和產(chǎn)生的16位要寫入RAM2的數(shù)據(jù)RAM_DATA[15..0]。

進一步,選擇控制模塊generate_flag_sel產(chǎn)生選擇信號flag_sel對2選1模塊MUX_cmd_to_RS422_frame的數(shù)據(jù)進行選擇輸出;具體選擇如下:當flag_sel為低時,將RAM1的數(shù)據(jù)輸出;flag_sel為高時,將RAM2的數(shù)據(jù)輸出。

進一步,乒乓式接收控制模塊Read_UART_to_RAM產(chǎn)生的使能信號Data_end1、存儲控制模塊MUX_cmd_RAM12_signals產(chǎn)生的地址cmd1_add[4..0]和乒乓式接收控制模塊Read_UART_to_RAM輸出的數(shù)據(jù)RAM_DATA[15..0]共同作用下進行RAM1的讀寫操作。

進一步,乒乓式接收控制模塊Read_UART_to_RAM產(chǎn)生的使能信號Data_end2、存儲控制模塊MUX_cmd_RAM12_signals產(chǎn)生的地址cmd2_add[4..0]和乒乓式接收控制模塊Read_UART_to_RAM輸出的數(shù)據(jù)RAM_DATA[15..0]共同作用下進行RAM2的讀寫操作。

進一步,寫使能Data_end1或Data_end2為低時寫RAM,為高時讀RAM;存儲控制模塊MUX_cmd_RAM12_signals產(chǎn)生的地址cmd1_add[4..0]或cmd2_add[4..0]中,當Data_end1低時寫地址,當Data_end1高時讀地址;當Data_end2低時寫地址,當Data_end2高時讀地址。

選擇控制模塊generate_flag_sel產(chǎn)生時序的方法如下:將50Hz信號進行標號,從第1個脈沖開始持續(xù)往后開始標號,奇數(shù)序號脈沖產(chǎn)生Data_end1,而在下一個奇數(shù)序號脈沖即第3個脈沖上升沿Data_end1再變?yōu)榈?偶數(shù)序列號產(chǎn)生Data_end2;利用Data_end1和Data_end2作為RAM1和RAM2的使能信號,控制RAM的讀寫操作;然后將Data_end1和Data_end2進行與操作;然后再利用adc_end上升沿對sel信號進行采集,就得到flag_sel。

本發(fā)明另一目的在于提供一種選擇控制模塊generate_flag_sel產(chǎn)生時序的方法,其方法如下:將50Hz的信號進行標號,從第1個脈沖開始持續(xù)往后開始標號,奇數(shù)序號的脈沖用來產(chǎn)生Data_end1,而在下一個奇數(shù)序號脈沖即第3個脈沖的上升沿時Data_end1再變?yōu)榈?偶數(shù)序列號產(chǎn)生Data_end2;利用Data_end1和Data_end2作為RAM1和RAM2的寫使能信號,控制RAM的讀寫操作;然后將Data_end1和Data_end2進行與操作;然后再利用adc_end的上升沿對sel信號進行采集,就得到flag_sel。

本發(fā)明的優(yōu)點及積極效果為:

本發(fā)明可以實現(xiàn)異步傳輸系統(tǒng)中接收幀速率與發(fā)送幀速率相同情況下的轉發(fā)通信,并且通過乒乓式操作實現(xiàn)對存儲器的控制,解決了接收端幀速率與異步串行數(shù)據(jù)幀速率一致時所造成的在數(shù)據(jù)幀周期內(nèi)無法有效對數(shù)據(jù)接收與存儲的問題;通過本系統(tǒng)可以實現(xiàn)UART協(xié)議同幀頻異步接收轉發(fā)數(shù)據(jù)的100%有效接收。

附圖說明

圖1是本發(fā)明實施例提供的UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng)示意圖;

圖2是本發(fā)明實施例提供的乒乓式接收控制模塊Read_UART_to_RAM示意圖;

圖3是本發(fā)明實施例提供的存儲控制模塊MUX_cmd_RAM12_signals示意圖;

圖4是本發(fā)明實施例提供的RAM1模塊示意圖;

圖5是本發(fā)明實施例提供的RAM2模塊示意圖;

圖6是本發(fā)明實施例提供的選擇控制模塊flag_sel示意圖;

圖7是本發(fā)明實施例提供的2選1模塊示意圖;

圖8是本發(fā)明實施例提供的選擇控制模塊flag_sel產(chǎn)生的時序圖。

具體實施方式

為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

下面結合附圖對本發(fā)明的應用原理作詳細描述。

如圖1所示,本發(fā)明實施例提供的UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng),異步、串行數(shù)據(jù)Rx通過UART接口后,按照UART數(shù)據(jù)傳輸格式輸出8位數(shù)據(jù)位并且產(chǎn)生一個接收準備控制信號rxrdy。在本系統(tǒng)中,這8位分別包括起始位、數(shù)據(jù)位(5位)、校驗位和停止位。然后在Read_UART_to_RAM模塊中,對50Hz時鐘頻率進行降頻處理,分別處理為兩個25Hz的時鐘頻率,即圖中所示的Data_end1、Data_end2,并且在該模塊中產(chǎn)生寫RAM的時鐘和地址即如圖2所示的WRAM_CLK1、WRAM_CLK2和WRAM_A[5..0],并且將接收到的數(shù)據(jù)合并成16位即圖2所示的RAM_DATA[15..0]。

接著再在存儲控制模塊MUX_cmd_RAM12_signals即圖3中分別輸出控制RAM1和RAM2的時鐘和地址,即在RAM1中如圖4所示,由存儲控制模塊MUX_cmd_RAM12_signals中產(chǎn)生的cmd_clk1、cmd1_add[4..0]以及在圖2中產(chǎn)生的Data_end1和RAM_DATA[15..0]分別為RAM1的時鐘、地址、使能和要寫入RAM1的數(shù)據(jù),最終輸出寫入RAM的數(shù)據(jù)cmd_ram1_data[15..0]。同理,RAM2如圖5所示也是如此,最終輸出cmd_ram2_data[15..0]。

然后利用選擇控制模塊generate_flag_sel產(chǎn)生選擇信號flag_sel,再利用選擇信號flag_sel對2選1模塊MUX_cmd_to_RS422_frame的數(shù)據(jù)進行選擇輸出。

下面結合具體實施例對本發(fā)明的應用原理作進一步描述。

本發(fā)明實施例提供的UART協(xié)議同幀頻異步接收轉發(fā)系統(tǒng),異步串行數(shù)據(jù)幀經(jīng)過UART接口之后按照UART通信協(xié)議的數(shù)據(jù)傳輸格式輸出一個8位數(shù)據(jù)位并且產(chǎn)生一個接收準備信號rxrdy,然后再經(jīng)過Read_UART_to_RAM模塊產(chǎn)生控制RAM1和RAM2的時鐘WRAM_CLK1、WRAM_CLK2,地址WRAM_A[15..0],使能Data_end1、Data_end2和寫入RAM1和RAM2的數(shù)據(jù)RAM_DATA[15..0]。

在圖2中產(chǎn)生的信號WRAM_CLK1、WRAM_CLK2、WRAM_A[15..0]、Data_end1、Data_end2,再加上外部輸入的讀RAM的地址rd_ram_add,經(jīng)過MUX_cmd_RAM12_signals模塊后輸出分別控制RAM1和RAM2的時鐘和地址。

在圖2中產(chǎn)生的使能信號Data_end1(為低時寫RAM,為高時讀RAM)、圖3中產(chǎn)生的地址cmd1_add[4..0](讀地址還是寫地址取決于Data_end1的高低)和RAM_DA TA[15..0]的作用下進行RAM1的讀寫操作。

在圖2中產(chǎn)生的使能信號Data_end2(為低時寫RAM,為高時讀RAM)、圖3中產(chǎn)生的地址cmd2_add[4..0](讀地址還是寫地址取決于Data_end2的高低)和RAM_DA TA[15..0]的作用下進行RAM2的讀寫操作。

在圖6中,以Data_end1、Data_end2和系統(tǒng)的采集控制信號adc_end作為輸入信號,產(chǎn)生輸出的選擇控制信號flag_sel(具體的產(chǎn)生細節(jié)見圖8)。

利用圖6產(chǎn)生的選擇控制信號flag_sel作為圖7的2選1模塊MUX_cmd_to_RS422_frame的選擇信號。當flag_sel為低時,將RAM1的數(shù)據(jù)輸出;flag_sel為高時,將RAM2的數(shù)據(jù)輸出。

如圖8所示,flag_sel產(chǎn)生時序的方法:將50Hz的信號進行標號,從第1個脈沖開始持續(xù)往后開始標號,奇數(shù)序號的脈沖用來產(chǎn)生Data_end1,而在下一個奇數(shù)序號脈沖即第3個脈沖的上升沿時Data_end1再變?yōu)榈?偶數(shù)序列號產(chǎn)生Data_end2,原理也是如此。由于一個周期為20ms,經(jīng)過計算得到接收異步串行數(shù)據(jù)需要大約12.2ms即圖中所示的UART接收,那么也就是說只剩下不到8ms的時間對數(shù)據(jù)進行存儲,就可能會存在在下一周期到來時數(shù)據(jù)還沒有全部存儲到RAM中,因此將50Hz的信號進行分頻處理,分別分為兩個25Hz的信號Data_end1和Data_end2,這樣寫RAM的時間變?yōu)椴坏?8ms,肯定能夠在下一個時鐘周期到來之前全部寫入RAM中。利用Data_end1和Data_end2作為RAM1和RAM2的寫使能,控制RAM的讀寫操作。然后將Data_end1和Data_end2進行與操作,相與之后的結果為圖8所示的sel信號,然后再利用adc_end上升沿對sel信號進行采集,就得到flag_sel。

本發(fā)明中,異步串行幀速率為f,每幀包含64字節(jié),adc_end采集控制信號速率為f。在本系統(tǒng)中f=50Hz,異步串行數(shù)據(jù)位速率為57600bps。

以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1