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

一種基于FlexRay總線的通信方法、裝置及系統(tǒng)與流程

文檔序號(hào):12376094閱讀:1035來源:國知局
一種基于FlexRay總線的通信方法、裝置及系統(tǒng)與流程

本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種基于FlexRay總線的通信方法、裝置及系統(tǒng)。



背景技術(shù):

FlexRay是一種用于汽車的高速的、可確定性的、具備故障容錯(cuò)能力的總線技術(shù),它將事件觸發(fā)和時(shí)間觸發(fā)兩種方式相結(jié)合,具有高效的網(wǎng)絡(luò)利用率和系統(tǒng)靈活性,可以作為汽車內(nèi)部網(wǎng)絡(luò)的主干網(wǎng)絡(luò)。FlexRay總線通信系統(tǒng),可用于FlexRay總線的仿真和數(shù)據(jù)采集,基于FlexRay總線實(shí)現(xiàn)高效、高帶寬以及高穩(wěn)定性的通信。

目前,F(xiàn)lexRay總線通信系統(tǒng)主要包括兩種:第一種主要由主機(jī)PC、控制器和協(xié)議芯片構(gòu)成,主機(jī)PC以控制器為通道讀寫協(xié)議芯片內(nèi)部的總線數(shù)據(jù);第二種主要由主機(jī)PC和FPGA等大型可編程邏輯器件構(gòu)成,不使用協(xié)議芯片,協(xié)議的編解碼、數(shù)據(jù)的處理和與主機(jī)PC之間的通信都在FPGA中實(shí)現(xiàn)。

第一種FlexRay總線通信系統(tǒng)中設(shè)置有協(xié)議芯片,不需要開發(fā)總線協(xié)議的具體內(nèi)容,著眼于協(xié)議芯片的接口時(shí)序即可,可以縮短開發(fā)周期,但是控制器只作為主機(jī)PC和協(xié)議芯片間的通道存在,協(xié)議芯片的中斷和數(shù)據(jù)的處理都通過主機(jī)PC來實(shí)現(xiàn),通信帶寬會(huì)嚴(yán)重受到主機(jī)PC的性能限制;而且主機(jī)PC在處理中斷時(shí)需要以控制器為通道從協(xié)議芯片內(nèi)部的寄存器中頻繁讀取數(shù)據(jù),一個(gè)數(shù)據(jù)包中有多少個(gè)數(shù)據(jù)就需要讀取多少次,導(dǎo)致數(shù)據(jù)處理的周期過長,會(huì)嚴(yán)重影響通信帶寬,甚至出現(xiàn)丟包現(xiàn)象。

第二種FlexRay總線通信系統(tǒng)是通過FPGA來進(jìn)行總線協(xié)議的編解碼和數(shù)據(jù)的處理,然后FPGA再與主機(jī)PC之間進(jìn)行通信,主機(jī)PC處理中斷時(shí)只需要一次性從FPGA中讀取一整包的數(shù)據(jù),減少了主機(jī)PC與協(xié)議芯片之間的頻繁讀寫交互,可以解決第一種FlexRay總線通信系統(tǒng)中的通信帶寬會(huì)嚴(yán)重受到主機(jī)PC的性能限制和數(shù)據(jù)處理的周期過長的問題,但是由于沒有設(shè)置協(xié)議芯片,需要為FPGA開發(fā)總線協(xié)議的具體內(nèi)容,會(huì)導(dǎo)致開發(fā)周期過長,而且不便于其他總線類型的程序的復(fù)用和移植。

因此,現(xiàn)有技術(shù)中缺乏一種既能進(jìn)行高速通信,又能縮短開發(fā)周期的基于FlexRay總線的通信方法、裝置及系統(tǒng)。



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

有鑒于此,本發(fā)明提供了一種基于FlexRay總線的通信方法、裝置及系統(tǒng),可以在實(shí)現(xiàn)高速通信的同時(shí),縮短開發(fā)周期。

為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:

一種基于FlexRay總線的通信方法,包括:

在接收到協(xié)議芯片發(fā)送的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù);

將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包;

以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到主機(jī)PC中。

優(yōu)選地,還包括:

在接收到所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片,以使所述協(xié)議芯片對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

一種基于FlexRay總線的通信裝置,包括:

讀取模塊,用于在接收到協(xié)議芯片發(fā)送的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù);

組包模塊,用于將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包;

第一發(fā)送模塊,用于以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到主機(jī)PC中。

優(yōu)選地,還包括:

接收模塊,用于接收所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù);

第二發(fā)送模塊,用于在接收到所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片,以使所述協(xié)議芯片對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

一種基于FlexRay總線的通信系統(tǒng),包括:

協(xié)議芯片、現(xiàn)場可編程門陣列FPGA和主機(jī)PC;

所述協(xié)議芯片用于從所述FlexRay總線中接收并解碼第一總線數(shù)據(jù),且在解碼所述第一總線數(shù)據(jù)后向所述FPGA發(fā)送中斷請求;

所述FPGA用于在接收到所述協(xié)議芯片發(fā)送的中斷請求后,讀取所述協(xié)議芯片解碼的所述第一總線數(shù)據(jù),將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包,并以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到所述主機(jī)PC中。

優(yōu)選地,所述FPGA還用于:

在接收到所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片,以使所述協(xié)議芯片對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

優(yōu)選地,還包括:

總線接口預(yù)處理模塊,用于按照所述協(xié)議芯片的接口要求對所述FlexRay總線的電平進(jìn)行轉(zhuǎn)換,將從所述FlexRay總線接收的所述第一總線數(shù)據(jù)輸入到所述協(xié)議芯片中進(jìn)行解碼,并按照所述FlexRay總線的電氣標(biāo)準(zhǔn)將所述協(xié)議芯片編碼之后的所述第二總線數(shù)據(jù)輸出到所述FlexRay總線中。

優(yōu)選地,還包括:

CPCI接口模塊,用于實(shí)現(xiàn)所述FPGA與所述主機(jī)PC之間的硬件連接。

優(yōu)選地,所述FPGA包括:

中斷處理模塊,用于對所述協(xié)議芯片發(fā)送的所述中斷請求進(jìn)行處理;

協(xié)議芯片接口控制模塊,用于按照所述協(xié)議芯片的接口要求完成對所述協(xié)議芯片中的寄存器的讀寫時(shí)序控制,以從所述協(xié)議芯片中讀取所述第一總線數(shù)據(jù)或者將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片;

CPCI接口控制模塊,用于按照所述CPCI接口模塊的接口要求完成與所述主機(jī)PC之間的寄存器讀寫控制和DMA通信控制;

DMA數(shù)據(jù)處理上傳模塊,用于將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包,并以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到所述主機(jī)PC中。

優(yōu)選地,所述協(xié)議芯片為MFR4310芯片。

通過本申請?zhí)峁┑幕贔lexRay總線的通信方法、裝置及系統(tǒng),在接收到協(xié)議芯片發(fā)送的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù);將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包;以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到主機(jī)PC中。可見,本申請?zhí)峁┑募夹g(shù)方案中,使用協(xié)議芯片完成總線數(shù)據(jù)的編解碼,可以將開發(fā)重點(diǎn)放在總線通信的數(shù)據(jù)處理上,節(jié)省總線協(xié)議上的開發(fā)時(shí)間,縮短開發(fā)周期;而且,本申請方案并不通過主機(jī)PC直接操作協(xié)議芯片,而是在接收到協(xié)議芯片的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù),并對第一總線數(shù)據(jù)進(jìn)行組包,通過DMA的方式將第一總線數(shù)據(jù)包一次上傳給主機(jī)PC,主機(jī)PC不需要處理中斷,也不需要從協(xié)議芯片中讀取第一總線數(shù)據(jù),只需要接收第一總線數(shù)據(jù)包,可以節(jié)省主機(jī)PC的性能,避免主機(jī)PC性能對通信帶寬的限制,同時(shí)組包和DMA的方式可以減少主機(jī)PC與協(xié)議芯片之間的頻繁讀寫交互,能夠大大簡化主機(jī)PC與協(xié)議芯片之間的通信流程,縮短一個(gè)數(shù)據(jù)處理周期需要的時(shí)間,保證設(shè)備的帶寬和速率,滿足高速通信的要求。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明第一具體實(shí)施例提供的基于FlexRay總線的通信方法的流程示意圖;

圖2是本發(fā)明第二具體實(shí)施例提供的基于FlexRay總線的通信裝置的結(jié)構(gòu)示意圖;

圖3是本發(fā)明第三具體實(shí)施例提供的基于FlexRay總線的通信系統(tǒng)的結(jié)構(gòu)示意圖;

圖4是本發(fā)明第四具體實(shí)施例提供的基于FlexRay總線的通信系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

本發(fā)明提供了一種基于FlexRay總線的通信方法,以及一種基于FlexRay總線的通信裝置及系統(tǒng),能夠在實(shí)現(xiàn)高速通信的同時(shí),縮短開發(fā)周期。

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

請參閱圖1,圖1是本發(fā)明第一具體實(shí)施例提供的基于FlexRay總線的通信方法的流程示意圖。

本發(fā)明第一具體實(shí)施例提供的基于FlexRay總線的通信方法,應(yīng)用于下位機(jī)的控制器FPGA中,包括以下步驟:

S101:在接收到協(xié)議芯片發(fā)送的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù);

在本申請實(shí)施例中,協(xié)議芯片負(fù)責(zé)完成總線數(shù)據(jù)的編解碼,通過中斷方式與FPGA進(jìn)行通信,協(xié)議芯片在接收到第一總線數(shù)據(jù)后向FPGA發(fā)起中斷請求,由FPGA對中斷源進(jìn)行判斷,讀取協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù)。本申請實(shí)施例使用協(xié)議芯片完成總線數(shù)據(jù)的編解碼,可以將開發(fā)重點(diǎn)放在總線通信的數(shù)據(jù)處理上,節(jié)省總線協(xié)議上的開發(fā)時(shí)間,縮短開發(fā)周期。

FPGA在接收到中斷請求后,可以執(zhí)行如下步驟:

(1)判斷中斷源:

(2)讀MB配置RAM,具體為:在板卡啟動(dòng)并初始化時(shí)由軟件設(shè)定此次通信網(wǎng)絡(luò)中使用到的mb_num,F(xiàn)PGA將此一系列的配置信息寫入內(nèi)部的RAM中,當(dāng)接收到中斷后首先讀取此RAM中的值;

其中:MB為消息緩存,mb_num為MB的序號(hào),RAM為隨機(jī)存儲(chǔ)器;

(3)讀MBCCSR值,具體為:讀取此寄存器中的第9位MBCCSR[8]:MBIE、第5位MBCCSR[4]:DUP、第4位MBCCSR[3]:DVAL和第1位MBCCSR[0]:MBIF,

其中:MBSCCR為消息緩存配置、控制、狀態(tài)寄存器,MBIE為消息中斷使能,DUP為幀頭和消息緩存域被更新,DVAL為消息緩存數(shù)據(jù)域中包含有效幀,MBIF為消息中斷標(biāo)志;

(4)通過讀取到的MBIE、DUP、DVAL和MBIF判斷此MB中的數(shù)據(jù)幀是否為有效數(shù)據(jù)幀;

若是有效的數(shù)據(jù)幀,將mb_num和有效數(shù)據(jù)幀標(biāo)志寫入到Node_MB_INT MSG中,則執(zhí)行步驟(5);若不是則執(zhí)行步驟(6),其中,Node_MB_INT MSG的含義是節(jié)點(diǎn)中斷信息寄存器;

(5)得到mb_num,具體為在步驟(2)中從MB配置RAM中取出來的值即是此次中斷源的mb_num,然后跳轉(zhuǎn)至步驟(9);

(6)讀MBIDXR值,具體為讀取此寄存器中的MBIDX值,其中,MBIDXR的含義是消息緩存索引寄存器,MBIDX的含義是消息緩存索引值。

(7)讀slot_Status值,具體為讀取此寄存器的第16位VFB和第8位VFA,其中,slot_Status的含義是時(shí)隙狀態(tài)寄存器,VFB的含義是通道B上有效幀,VFA的含義是通道A上有效幀。

(8)判斷MBSCCSR[0]&(Slot[7]‖Slot[15])?具體為:MBIF為1,即中斷標(biāo)志位有效,并且VFB或VFA中至少有一個(gè)為1,即通道A或通道B中至少有一個(gè)通道有有效幀;

若滿足上述條件,則認(rèn)為是接收到了有效的空幀,將mb_num和空數(shù)據(jù)幀標(biāo)志寫入到Node_MB_INT MSG中,跳轉(zhuǎn)至步驟(5),若不滿足條件,跳轉(zhuǎn)至步驟(2)繼續(xù)判斷下一個(gè)MB信息;

(9)將MBCCSR[9]=1寫入MBCCSR,具體為:保持MBCCSR寄存器中的其他值不變,解鎖消息緩存,其中,MBCCSR[9]是LCKT,含義是鎖定或者解鎖消息緩存;

(10)再次讀取MBSSCR值,并將此值緩存在MBCCSR_temp2中。

在中斷處理完成后,F(xiàn)PGA還需要清中斷標(biāo)志位:

(11)MBCCSR=MBCCSR&0xf900,具體為:設(shè)置即將寫入MBCCSR中的值,其中,MBCCSR=MBCCSR&0xf900的含義是保持MBCCSR寄存器中的其他位不變,將MBIF位置1;

(12)將MBCCSR[0]=1寫入MBCCSR,具體為:清除消息緩存中斷標(biāo)志位。

S102:將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包;

在現(xiàn)有技術(shù)中,下位機(jī)的處理器通常是使用單片機(jī),協(xié)議芯片在發(fā)送中斷請求后,主機(jī)PC在處理中斷時(shí)需要以單片機(jī)為通道直接對協(xié)議芯片內(nèi)部的寄存器進(jìn)行讀寫,以寄存器讀取的方式將總線數(shù)據(jù)一個(gè)一個(gè)讀回,再由主機(jī)PC的軟件處理部分對總線數(shù)據(jù)進(jìn)行組包。這需要主機(jī)PC從協(xié)議芯片內(nèi)部的寄存器中頻繁讀取數(shù)據(jù),一個(gè)數(shù)據(jù)包中有多少個(gè)數(shù)據(jù)就需要讀取多少次,導(dǎo)致數(shù)據(jù)處理的周期過長,會(huì)嚴(yán)重影響通信帶寬,甚至出現(xiàn)丟包現(xiàn)象。

在本申請實(shí)施例中,下位機(jī)的處理器使用FPGA,協(xié)議芯片在發(fā)送中斷請求后,是由FPGA處理中斷,將第一總線數(shù)據(jù)從協(xié)議芯片中讀回后進(jìn)行組包,生成第一總線數(shù)據(jù)包。在處理中斷、讀取第一總線數(shù)據(jù)以及組包生成第一總線數(shù)據(jù)包的過程中并不需要主機(jī)PC的參與,可以節(jié)省主機(jī)PC性能,避免主機(jī)PC的性能對通信帶寬的限制。

S103:以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到主機(jī)PC中。

FPGA在將第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包后,以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包一次上傳到主機(jī)PC中,可以減少與主機(jī)PC之間的數(shù)據(jù)交互,從而減少主機(jī)PC接收數(shù)據(jù)的次數(shù),縮短主機(jī)PC接收數(shù)據(jù)的時(shí)間,降低對通信帶寬的影響。

FPGA在以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到主機(jī)PC中時(shí),可以執(zhí)行如下步驟:

(13)判斷MBCCSR_temp2[1]是否被鎖定,具體為:判斷此時(shí)消息緩存是否處于被鎖定狀態(tài),其中,MBCCSR_temp2[1],即LCKS的含義是當(dāng)前消息緩存的鎖定狀態(tài);

若被鎖定,則執(zhí)行步驟(14);若未被鎖定,則執(zhí)行步驟(21);

(14)讀取MBIDXR值,具體為:同步驟(6);

(15)讀取frame_header和slot_Status值,其中,frame_header的含義是數(shù)據(jù)幀頭信息;

(16)判斷Node_MB_INT MSG的數(shù)據(jù)幀類型;

若為數(shù)據(jù)幀,則執(zhí)行步驟(17),若為空幀,則執(zhí)行步驟(19);

(17)讀數(shù)據(jù)偏移地址DFO,具體為讀取DFO寄存器的值,此值就是存儲(chǔ)數(shù)據(jù)的緩存區(qū)的地址,其中DFO的含義為數(shù)據(jù)域偏移地址;

(18)讀數(shù)據(jù),具體為根據(jù)在S305中讀到的地址值,向其發(fā)送讀命令,從中讀出FlexRay總線的幀數(shù)據(jù)。

(19)再次讀取MBCCSR值;

(20)同步驟(11);

(21)以DMA方式將數(shù)據(jù)上傳至PC主機(jī),其中DMA的含義是直接存儲(chǔ)器讀取。

本申請實(shí)施例提供的基于FlexRay總線的通信方法,使用協(xié)議芯片完成總線數(shù)據(jù)的編解碼,可以將開發(fā)重點(diǎn)放在總線通信的數(shù)據(jù)處理上,節(jié)省總線協(xié)議上的開發(fā)時(shí)間,縮短開發(fā)周期。

而且,本申請方案并不通過主機(jī)PC直接操作協(xié)議芯片,而是在接收到協(xié)議芯片的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù),并對第一總線數(shù)據(jù)進(jìn)行組包,通過DMA的方式將第一總線數(shù)據(jù)包一次上傳給主機(jī)PC,主機(jī)PC不需要處理中斷,也不需要從協(xié)議芯片中讀取第一總線數(shù)據(jù),只需要接收第一總線數(shù)據(jù)包,可以節(jié)省主機(jī)PC的性能,避免主機(jī)PC性能對通信帶寬的限制。

同時(shí),組包和DMA上傳的方式可以減少主機(jī)PC與協(xié)議芯片之間的頻繁讀寫交互,能夠大大簡化主機(jī)PC與協(xié)議芯片之間的通信流程,縮短一個(gè)數(shù)據(jù)處理周期需要的時(shí)間,保證設(shè)備的帶寬和速率,滿足高速通信的要求。

可以理解的是,協(xié)議芯片不僅會(huì)從FlexRay總線中接收并解碼第一總線數(shù)據(jù),還會(huì)向FlexRay總線中發(fā)送編碼的第二總線數(shù)據(jù),此時(shí),F(xiàn)PGA需要接收主機(jī)PC發(fā)送的第二總線數(shù)據(jù),并在接收到所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片,以使所述協(xié)議芯片對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

在本申請實(shí)施例中,F(xiàn)PGA在向協(xié)議芯片發(fā)送第二總線數(shù)據(jù)時(shí),可以組包發(fā)送,也可以不組包發(fā)送,在不組包發(fā)送時(shí),可以采用寄存器方式將主機(jī)PC的第二總線數(shù)據(jù)發(fā)送給協(xié)議芯片。

請參閱圖2,圖2是本發(fā)明第二具體實(shí)施例提供的基于FlexRay總線的通信裝置的結(jié)構(gòu)示意圖。

與本發(fā)明第一具體實(shí)施例中提供的基于FlexRay總線的通信方法相對應(yīng),本發(fā)明第二具體實(shí)施例提供的基于FlexRay總線的通信裝置,包括:

讀取模塊21,用于在接收到協(xié)議芯片發(fā)送的中斷請求后,讀取所述協(xié)議芯片從FlexRay總線中接收并解碼的第一總線數(shù)據(jù);

組包模塊22,用于將從所述協(xié)議芯片中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包;

第一發(fā)送模塊23,用于以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到主機(jī)PC中。

優(yōu)選地,還可以包括:

接收模塊24,用于接收所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù);

第二發(fā)送模塊25,用于在接收到所述主機(jī)PC發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片,以使所述協(xié)議芯片對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

本申請實(shí)施例提供的基于FlexRay總線的通信裝置可以是現(xiàn)場可編程門陣列FPGA,通信方法可以采用上述方法實(shí)施例中的基于FlexRay總線的通信方法,具體功能可以參照上述方法實(shí)施例中的步驟描述,此處不再贅述。

請參閱圖3,圖3是本發(fā)明第三具體實(shí)施例提供的基于FlexRay總線的通信系統(tǒng)的結(jié)構(gòu)示意圖。

本發(fā)明第三具體實(shí)施例提供的基于FlexRay總線的通信系統(tǒng),包括:

協(xié)議芯片31、現(xiàn)場可編程門陣列FPGA32和主機(jī)PC33;

所述協(xié)議芯片31用于從所述FlexRay總線中接收并解碼第一總線數(shù)據(jù),且在解碼所述第一總線數(shù)據(jù)后向所述FPGA32發(fā)送中斷請求;

所述FPGA32用于在接收到所述協(xié)議芯片31發(fā)送的中斷請求后,讀取所述協(xié)議芯片31解碼的所述第一總線數(shù)據(jù),將從所述協(xié)議芯片31中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包,并以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到所述主機(jī)PC33中。

優(yōu)選地,所述FPGA32還用于:

在接收到所述主機(jī)PC33發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片31,以使所述協(xié)議芯片31對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

本申請實(shí)施例提供的基于FlexRay總線的通信系統(tǒng),與上述方法實(shí)施例中的基于FlexRay總線的通信方法相對應(yīng),具體功能可以參照上述方法實(shí)施例中的步驟描述,此處不再贅述。

請參閱圖4,圖4為本發(fā)明第四具體實(shí)施例提供的基于FlexRay總線的通信系統(tǒng)的結(jié)構(gòu)示意圖。

本發(fā)明第四具體實(shí)施例提供的基于FlexRay總線的通信系統(tǒng),包括:

協(xié)議芯片31、現(xiàn)場可編程門陣列FPGA32、主機(jī)PC33、總線接口預(yù)處理模塊34、CPCI接口模塊35;

所述協(xié)議芯片31用于從所述FlexRay總線中接收并解碼第一總線數(shù)據(jù),且在解碼所述第一總線數(shù)據(jù)后向所述FPGA32發(fā)送中斷請求;

所述FPGA32用于在接收到所述協(xié)議芯片31發(fā)送的中斷請求后,讀取所述協(xié)議芯片31解碼的所述第一總線數(shù)據(jù),將從所述協(xié)議芯片31中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包,并以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到所述主機(jī)PC33中。

優(yōu)選地,所述FPGA32還用于:

在接收到所述主機(jī)PC33發(fā)送的第二總線數(shù)據(jù)后,將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片31,以使所述協(xié)議芯片31對所述第二總線數(shù)據(jù)進(jìn)行編碼,并將編碼后的所述第二總線數(shù)據(jù)發(fā)送到所述FlexRay總線中。

總線接口預(yù)處理模塊34,用于按照所述協(xié)議芯片31的接口要求對所述FlexRay總線的電平進(jìn)行轉(zhuǎn)換,將從所述FlexRay總線接收的所述第一總線數(shù)據(jù)輸入到所述協(xié)議芯片31中進(jìn)行解碼,并按照所述FlexRay總線的電氣標(biāo)準(zhǔn)將所述協(xié)議芯片31編碼之后的所述第二總線數(shù)據(jù)輸出到所述FlexRay總線中。

CPCI接口模塊35,用于實(shí)現(xiàn)所述FPGA32與所述主機(jī)PC33之間的硬件連接。

參照圖4所示,所述FPGA32中包括:

中斷處理模塊321,用于對所述協(xié)議芯片31發(fā)送的所述中斷請求進(jìn)行處理;

協(xié)議芯片接口控制模塊322,用于按照所述協(xié)議芯片31的接口要求完成對所述協(xié)議芯片31中的寄存器的讀寫時(shí)序控制,以從所述協(xié)議芯片31中讀取所述第一總線數(shù)據(jù)或者將所述第二總線數(shù)據(jù)發(fā)送給所述協(xié)議芯片31;

CPCI接口控制模塊323,用于按照所述CPCI接口模塊35的接口要求完成與所述主機(jī)PC33之間的寄存器讀寫控制和DMA通信控制;

DMA數(shù)據(jù)處理上傳模塊324,用于將從所述協(xié)議芯片31中讀取的所述第一總線數(shù)據(jù)進(jìn)行組包,生成第一總線數(shù)據(jù)包,并以直接內(nèi)存存取DMA的方式將所述第一總線數(shù)據(jù)包上傳到所述主機(jī)PC33中。

在本申請實(shí)施例中,可編程邏輯器件FPGA中設(shè)置有協(xié)議芯片接口控制邏輯、中斷處理邏輯、數(shù)據(jù)收發(fā)邏輯、DMA數(shù)據(jù)上傳邏輯、CPCI接口控制邏輯;協(xié)議芯片負(fù)責(zé)完成總線數(shù)據(jù)的編解碼,并通過中斷方式與FPGA進(jìn)行通信;FPGA對協(xié)議芯片發(fā)起的中斷進(jìn)行處理,完成第一總線數(shù)據(jù)的接收,并對第一總線數(shù)據(jù)進(jìn)行組包,通過DMA方式上傳至主機(jī)PC,大大的簡化了主機(jī)PC與協(xié)議芯片之間的通信流程,縮短了一個(gè)數(shù)據(jù)處理周期需要的時(shí)間,從而實(shí)現(xiàn)高速的數(shù)據(jù)通信。同時(shí)可編程邏輯器件FPGA中采用模塊化設(shè)計(jì),可以很快的對程序進(jìn)行升級(jí),縮短開發(fā)周期,降低硬件重開發(fā)成本和數(shù)據(jù)通信復(fù)雜度。

此外,在使用DMA方式的同時(shí),在FPGA中還可以對數(shù)據(jù)進(jìn)行組包和超時(shí)上傳,其中組包和超時(shí)的參數(shù)均可以開放給用戶,組包功能既可以盡可能大的利用DMA的帶寬,同時(shí)又保證在數(shù)據(jù)傳輸?shù)倪^程中如果主機(jī)PC發(fā)起了寄存器讀取的指令,也能很快的在數(shù)據(jù)包上傳后對讀操作進(jìn)行響應(yīng),不會(huì)導(dǎo)致死機(jī),配合組包的超時(shí)上傳功能又可以保證數(shù)據(jù)包完整不丟失。

本申請實(shí)施例使用了協(xié)議芯片,所述協(xié)議芯片可以采用飛思卡爾的MFR4310芯片,開發(fā)重點(diǎn)可以放在FPGA對于總線通信的數(shù)據(jù)處理上,能夠節(jié)省總線協(xié)議上的開發(fā)時(shí)間;FPGA不僅實(shí)現(xiàn)了協(xié)議芯片外圍接口控制邏輯,還要實(shí)現(xiàn)中斷處理、數(shù)據(jù)處理和DMA上傳處理,相對于現(xiàn)有技術(shù)中通常使用的DSP和單片機(jī)等處理器,可以由單節(jié)點(diǎn)控制改進(jìn)為多節(jié)點(diǎn)同時(shí)控制,還使用了高速的并行接口對中斷和數(shù)據(jù)按照流程進(jìn)行快速處理,實(shí)現(xiàn)較高的通信帶寬,并且通過DMA方式上傳到主機(jī)PC,處理速率和數(shù)據(jù)吞吐都可以顯著提升,能夠?qū)崿F(xiàn)高速、高效、穩(wěn)定的FlexRay總線通信;采用CPCI接口與主機(jī)相連,CPCI接口模塊可以使用9056橋片,相對于現(xiàn)有技術(shù)中通常使用的PCI接口,通信帶寬可以提升一倍,并且可以快速開發(fā)實(shí)現(xiàn)DMA功能。

并且,本申請實(shí)施例在FPGA將第一總線數(shù)據(jù)發(fā)送給主機(jī)PC時(shí)采用了DMA的方式,而在FPGA將第二總線數(shù)據(jù)發(fā)送給協(xié)議芯片時(shí)可以采用寄存器的方式,所以主機(jī)PC中軟件的工作可以集中在接收總線數(shù)據(jù)上,更符合FlexRay通信系統(tǒng)特點(diǎn),并且結(jié)合了組包的功能,使得主機(jī)PC接收到的都是有效的數(shù)據(jù)內(nèi)容,減少主機(jī)PC處理中斷的次數(shù),性能可以大大提高,使得雙向數(shù)據(jù)通信既獨(dú)立又高效穩(wěn)定。

本申請實(shí)施例提供的基于FlexRay總線的通信系統(tǒng),可以采用上述方法實(shí)施例中的基于FlexRay總線的通信方法,具體功能可以參照上述方法實(shí)施例中的步驟描述,此處不再贅述。

為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。

本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。

專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。

對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

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