本發(fā)明涉及信息通信,尤其涉及一種半雙工的片間spi訪問寄存器的方法及系統(tǒng)。
背景技術(shù):
1、在某些定制化的無線通信產(chǎn)品中,由于涉及到多種外設(shè)的控制,高速口的傳輸以及數(shù)字中頻信號的處理,從經(jīng)濟(jì)成本的角度考慮,往往舍棄了使用一片搭載arm的高端fpga芯片,而采用兩片低端的fpga協(xié)同工作,其中一片搭載arm的主fpga,另一片不攜帶arm的從fpga,主fpga用來控制外設(shè)和傳輸高速數(shù)據(jù),而從fpga則用來處理數(shù)字中頻信號和開發(fā)一些不需要軟件協(xié)同的功能。但是沒有arm意味著沒有g(shù)p總線可以調(diào)用,從而無法實(shí)現(xiàn)寄存器這一基礎(chǔ)功能,而寄存器無論在前期的調(diào)試中,還是后期的定位問題中,起著舉足輕重的作用。所以在主fpga協(xié)同從fpga工作的平臺(tái)上,開發(fā)出一套能滿足技術(shù)人員調(diào)試以及定位問題的寄存器系統(tǒng)尤為重要。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種半雙工的片間spi訪問寄存器的方法及系統(tǒng),通過一片攜帶arm處理器的主側(cè)fpga向另一片無arm處理器的從側(cè)fpga通過串行通用接口spi協(xié)議的方式,實(shí)現(xiàn)主側(cè)fpga向從側(cè)fpga讀寫寄存器的功能。
2、為達(dá)到上述目的,本發(fā)明是采用下述技術(shù)方案實(shí)現(xiàn)的:
3、第一方面,本發(fā)明提供了一種半雙工的片間spi訪問寄存器的方法,用于通過自帶arm處理器的主側(cè)fpga對未帶arm處理器的從側(cè)fpga進(jìn)行讀寫操作,所述主側(cè)fpga包括依次連接的arm處理器、連接器、轉(zhuǎn)換器、主側(cè)寄存器以及主側(cè)spi接口;所述從側(cè)fpga包括互連的從側(cè)spi接口和從側(cè)寄存器;所述方法包括寫狀態(tài)和/或讀狀態(tài);
4、在寫狀態(tài)下,獲取arm處理器輸出的寫數(shù)據(jù)和寫地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為寫使能、寫數(shù)據(jù)以及寫地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出寫使能、寫地址以及寫數(shù)據(jù),將寫數(shù)據(jù)存放在寫地址中;
5、在讀狀態(tài)下,獲取arm處理器輸出的讀地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為讀使能和讀地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出讀使能和讀地址,獲取讀地址對應(yīng)的讀數(shù)據(jù);將讀數(shù)據(jù)沿傳輸路徑反向傳回arm處理器。
6、可選的,在寫狀態(tài)下,基于所述axi4協(xié)議的握手準(zhǔn)則:在轉(zhuǎn)換器準(zhǔn)備好的情況下,轉(zhuǎn)換器將寫地址通道和寫數(shù)據(jù)通道的準(zhǔn)備信號發(fā)送給連接器,表示轉(zhuǎn)換器已經(jīng)準(zhǔn)備好,此時(shí)連接器將寫地址和寫數(shù)據(jù)發(fā)送至轉(zhuǎn)換器;在連接器準(zhǔn)備好的情況下,連接器將寫回復(fù)通道的準(zhǔn)備信號發(fā)送給轉(zhuǎn)換器,表示連接器已經(jīng)準(zhǔn)備好,此時(shí)轉(zhuǎn)換器將寫回復(fù)數(shù)據(jù)發(fā)送至連接器;
7、根據(jù)轉(zhuǎn)換器獲取的axi4協(xié)議的協(xié)議數(shù)據(jù),將寫地址和寫數(shù)據(jù)對齊在同一時(shí)刻并發(fā)送至主側(cè)寄存器,同時(shí)發(fā)送寫使能至主側(cè)寄存器。
8、可選的,在寫狀態(tài)下,
9、定義spi寫使能寄存器,包括spi寫使能地址及其對應(yīng)的spi寫使能信號,spi寫使能信號的高低電平分別表示寫使能有效和寫使能無效;
10、定義讀寫判斷寄存器,包括讀寫判斷地址及其對應(yīng)的讀寫判斷信號,讀寫判斷信號的高低電平分別表示讀狀態(tài)和寫狀態(tài);
11、定義spi寫地址寄存器,包括spi寫地址的地址及其對應(yīng)的spi寫地址信號,spi寫地址信號為16位,表示傳輸最大位寬為16bit的地址;
12、定義spi寫數(shù)據(jù)寄存器,包括spi寫數(shù)據(jù)的地址及其對應(yīng)的spi寫數(shù)據(jù)信號,spi寫數(shù)據(jù)信號為32位,表示傳輸最大位寬為32bit的數(shù)據(jù);
13、根據(jù)主側(cè)寄存器獲取的寫使能、寫數(shù)據(jù)以及寫地址組成的接口數(shù)據(jù),將讀寫判斷信號置為低電平,將寫地址作為spi寫地址信號,將寫數(shù)據(jù)作為spi寫數(shù)據(jù)信號,將spi寫使能信號置為高電平。
14、可選的,在寫狀態(tài)下,spi寫使能信號為高電平時(shí),觸發(fā)主側(cè)spi接口的工作邏輯:
15、將spi的片選信號置為低電平,在間隔10個(gè)系統(tǒng)時(shí)鐘的單位時(shí)鐘周期位置,將接入的系統(tǒng)時(shí)鐘進(jìn)行十分頻,設(shè)置spi時(shí)鐘,同時(shí)采用spi時(shí)鐘的上升沿采樣,由于需要向從側(cè)fpga傳輸1bit的讀寫判斷信號、16bit的spi寫地址信號、32bit的spi寫數(shù)據(jù)信號,所以傳輸?shù)膕pi時(shí)鐘需要持續(xù)49個(gè)spi的單位時(shí)鐘周期;
16、在間隔spi的片選信號5個(gè)系統(tǒng)時(shí)鐘的單位時(shí)鐘周期的位置,設(shè)置采集數(shù)據(jù)的建立時(shí)間和保持時(shí)間均為50%,依次將讀寫判斷信號、spi寫地址信號、spi寫數(shù)據(jù)信號使用移位寄存器的方式,通過spi的mosi總線依次發(fā)送49bit,當(dāng)最后1bit寫數(shù)據(jù)信號發(fā)送完成后,滿足保持時(shí)間后將片選信號置為高電平,完成了寫地址和寫數(shù)據(jù)的從側(cè)fpga傳輸?shù)牟僮鳌?/p>
17、可選的,在寫狀態(tài)下,從側(cè)spi接口的工作邏輯為:
18、在片選信號被置為低電平的情況下,同時(shí)在spi時(shí)鐘的上升沿處,判斷接收到的讀寫判斷信號是否為低電平,若是,則將通過spi的mosi總線接收到的16bit的spi寫地址信號和32bit的spi寫數(shù)據(jù)信號緩存,并傳輸至從側(cè)寄存器,同時(shí)輸出寫使能至從側(cè)寄存器。
19、第二方面,本發(fā)明提供了一種半雙工的片間spi訪問寄存器的系統(tǒng),用于通過自帶arm處理器的主側(cè)fpga對未帶arm處理器的從側(cè)fpga進(jìn)行讀寫操作,所述主側(cè)fpga包括依次連接的arm處理器、連接器、轉(zhuǎn)換器、主側(cè)寄存器以及主側(cè)spi接口;所述從側(cè)fpga包括互連的從側(cè)spi接口和從側(cè)寄存器;所述系統(tǒng)包括寫狀態(tài)執(zhí)行模塊和/或讀狀態(tài)執(zhí)行模塊;
20、所述寫狀態(tài)執(zhí)行模塊用于在寫狀態(tài)下,獲取arm處理器輸出的寫數(shù)據(jù)和寫地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為寫使能、寫數(shù)據(jù)以及寫地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出寫使能、寫地址以及寫數(shù)據(jù),將寫數(shù)據(jù)存放在寫地址中;
21、所述讀狀態(tài)執(zhí)行模塊用于在讀狀態(tài)下,獲取arm處理器輸出的讀地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為讀使能和讀地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出讀使能和讀地址,獲取讀地址對應(yīng)的讀數(shù)據(jù);將讀數(shù)據(jù)沿傳輸路徑反向傳回arm處理器。
22、與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果:
23、本發(fā)明提供的一種半雙工的片間spi訪問寄存器的方法及系統(tǒng),1)采用一片攜帶arm處理器的主側(cè)fpga向另一片無arm處理器的從側(cè)fpga通過串行通用接口spi協(xié)議的方式,實(shí)現(xiàn)主側(cè)fpga向從側(cè)fpga讀寫寄存器的功能,從而避免了在一片高端fpga完成所有arm的功能所帶來的經(jīng)濟(jì)成本,降低了開發(fā)成本。2)在實(shí)現(xiàn)數(shù)據(jù)和地址的傳輸時(shí),采用axi4協(xié)議向更為簡單的使能,地址及數(shù)據(jù)的自定義接口轉(zhuǎn)換,以及向spi協(xié)議的轉(zhuǎn)換,實(shí)現(xiàn)了axi4協(xié)議和spi協(xié)議的互聯(lián),更具靈活性,賦予了系統(tǒng)適應(yīng)更多場景的能力。3)通過劃分主側(cè)fpga和從側(cè)fpga的具體模塊以及具體模塊的功能實(shí)現(xiàn),增強(qiáng)系統(tǒng)邏輯性,同時(shí)方便在調(diào)試時(shí)期出現(xiàn)問題后的斷點(diǎn)抓數(shù),增強(qiáng)開發(fā)效率。4)采用spi協(xié)議,由主fpga實(shí)現(xiàn)從fpga的寄存器讀取,只需要簡單的pcb走線,并不需要實(shí)際的spi器件,便可以完成寄存器讀取的功能,降低系統(tǒng)復(fù)雜程度。