一種spi總線在ipran設(shè)備中的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種SPI總線在IPRAN設(shè)備中的實(shí)現(xiàn)方法,具體為:在CPLD內(nèi)構(gòu)建SPI總線接口模塊,實(shí)現(xiàn)構(gòu)成SPI總線接口的四個信號;在控制寄存器,配置每個SPI總線接口的傳輸模式、SPI時鐘的極性和相位以及傳輸速率;SPI控制狀態(tài)機(jī)產(chǎn)生從選擇標(biāo)志位,寫入從選擇寄存器,并產(chǎn)生時鐘任務(wù)信號控制SPI時鐘輸出的時機(jī),控制寄存器中與SPI時鐘的極性和相位相同的SPI總線接口開始數(shù)據(jù)傳輸;SPI控制狀態(tài)機(jī)控制SPI移位寄存器對8bit讀緩沖器數(shù)據(jù)的裝載和移位;實(shí)時檢測狀態(tài)寄存器的狀態(tài),數(shù)據(jù)發(fā)送完成,裝載下一個數(shù)據(jù)。本發(fā)明解決了因處理器沒有SPI總線接口,而不能使用在需要該接口功能的單盤應(yīng)用開發(fā)電路上的問題,且方便后期SPI總線接口電路的修改和維護(hù)。
【專利說明】
-種SPI總線在IPRAN設(shè)備中的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及數(shù)據(jù)通信設(shè)備,具體設(shè)及一種SPI總線在IPRA的受備中的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002] 目前,數(shù)據(jù)業(yè)務(wù)網(wǎng)正處在發(fā)展轉(zhuǎn)型時期,在電信業(yè)務(wù)IP化趨勢推動下,傳送網(wǎng)承載 的業(yè)務(wù)從WTDM為主向WIP為主轉(zhuǎn)變,新業(yè)務(wù)類型的不斷出現(xiàn),對傳輸網(wǎng)承載數(shù)據(jù)類型的多 樣性提出了更高的要求。因此,CiTRANS R845設(shè)備對主控盤處理器的性能提出了更高的要 求,而前期使用的MPC8247處理器扣板已不能滿足運(yùn)樣的需求。
[0003] 經(jīng)過評估,其它型號處理器可W滿足CiTRANS R845設(shè)備對主控盤處理器性能需 求,但是沒有SPI總線接口,而由于SPI總線接口使用簡單方便、節(jié)省系統(tǒng)資源,且很多忍片 都支持該接口,應(yīng)用相當(dāng)廣泛,因此設(shè)計(jì)要求主控盤處理器能夠通過SPI總線接口外掛鐵電 存儲器W及配置皿B忍片,所W運(yùn)些沒有SPI總線接口的處理器不能取代MPC8247處理器,而 嵌入式MPC8548處理器,它的CPU處理能力最高可達(dá)3065MIPS,支持2GB的內(nèi)存,自帶PCI 2.2 標(biāo)準(zhǔn)接口,可W外接2GB的CF卡,完全滿足CiTRANS R845設(shè)備對主控盤處理器性能需求。但 是,MPC8548處理器卻沒有SPI總線接口,致使其不能取代MPC8247處理器滿足CiTRANS R845 設(shè)備對主控盤處理器的設(shè)計(jì)要求。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是實(shí)際應(yīng)用中主控盤處理器需要通過SPI總線接口外 掛鐵電存儲器W及配置冊B忍片,但是一些符合CiTRANS R845設(shè)備對主控盤處理器性能需 求的處理器卻沒有SPI總線接口,致使其不能取代前期MPC8247處理器作為主控盤處理器的 問題。
[0005] 為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是提供一種SPI總線在IPRAN設(shè) 備中的實(shí)現(xiàn)方法,具體為:
[0006] 在CPLD內(nèi)構(gòu)建SPI總線接口模塊,實(shí)現(xiàn)構(gòu)成SPI總線接口的四個信號;其中,SPI總 線接口模塊包括8bit讀緩沖器、SPI移位寄存器、控制寄存器、狀態(tài)寄存器、從選擇寄存器和 SPI控制狀態(tài)機(jī);
[0007] 主處理器讀或?qū)懣刂萍拇嫫鳎渲妹總€SPI總線接口的傳輸模式、SPI時鐘的極性 和相位W及傳輸速率;
[000引根據(jù)主處理器從使能信號,SPI控制狀態(tài)機(jī)產(chǎn)生相應(yīng)從選擇標(biāo)志位,寫入從選擇寄 存器,相應(yīng)SPI總線接口輸出有效,并產(chǎn)生時鐘任務(wù)信號控制SPI時鐘輸出到時機(jī),控制寄存 器中與SPI時鐘的極性和相位相同的SPI總線接口開始數(shù)據(jù)傳輸;SPI控制狀態(tài)機(jī)將接收到 的數(shù)據(jù)存入8bit讀緩沖器,并控制SPI移位寄存器對緩存數(shù)據(jù)的裝載和移位;實(shí)時檢測狀態(tài) 寄存器的狀態(tài),確定數(shù)據(jù)發(fā)送完成后,裝載下一個數(shù)據(jù)。
[0009] 在上述方法中,8bit讀緩沖器在發(fā)送端為單緩沖,接收端為雙緩沖。
[0010] 在上述方法中,所述狀態(tài)寄存器包含發(fā)送完成標(biāo)志位和系統(tǒng)出錯標(biāo)志位,當(dāng)相應(yīng) 的事件發(fā)生時,發(fā)送完成標(biāo)志位和系統(tǒng)出錯標(biāo)志位的標(biāo)志自動設(shè)置,清除則由軟件來完成。
[0011] 在上述方法中,SPI總線接口開始數(shù)據(jù)傳輸后,如果一個字節(jié)數(shù)據(jù)傳輸結(jié)束后數(shù)據(jù) 傳輸開始信號依然有效的話,SPI控制狀態(tài)機(jī)就接著傳輸下一個字節(jié)數(shù)據(jù),且運(yùn)時的SCK信 號要繼續(xù)保持有效。
[0012] 在上述方法中,在通過SPI總線接口通信時,數(shù)據(jù)是同步進(jìn)行發(fā)送和接收的;數(shù)據(jù) 傳輸?shù)腟PI時鐘來自主處理器的時鐘脈沖。
[0013] 在上述方法中,SPI總線接口模塊的SPI時鐘和與之通信的外設(shè)時鐘相位和極性一 致。
[0014] 本發(fā)明用CPLD來模擬實(shí)現(xiàn)SPI總線接口的功能,不僅解決了因 MPC8548等處理器沒 有SPI總線接口,而不能使用在需要該接口功能的單盤應(yīng)用開發(fā)電路上的問題,而且CPLD有 很強(qiáng)的靈活性,其內(nèi)部的具體邏輯功能可W根據(jù)需要來配置,方便后期對SPI總線接口電路 的修改和維護(hù)。
【附圖說明】
[001引圖巧本發(fā)明提供的一種SPI總線在IPRA的受備中的實(shí)現(xiàn)方法系統(tǒng)框圖;
[0016] 圖2為本發(fā)明中SPI時鐘的時序圖。
【具體實(shí)施方式】
[0017] 制定成標(biāo)準(zhǔn)的SPI總線已成為常用的外圍器件連接方式,針對常用的外圍存儲器 件FLA細(xì),具有SPI總線接口的FLA細(xì)忍片連接方便,通過CPLD編程可W便捷地實(shí)現(xiàn)FLA甜的 存取功能,因此基于CPLD的具有SPI總線接口的FLA甜功能的實(shí)現(xiàn)為工程設(shè)計(jì)提供了一種原 型,用CPLD來模擬實(shí)現(xiàn)SPI總線接口的功能是可行的。
[0018] 下面結(jié)合說明書附圖和具體實(shí)施例對本發(fā)明做出詳細(xì)的說明。
[0019] 如圖1所示,本發(fā)明提供的一種SPI總線在IPRA的受備中的實(shí)現(xiàn)方法,具體為:
[0020] 沒有SPI總線接口的處理器接入一個CPLD,并在CPLD內(nèi)構(gòu)建SPI總線接口模塊,實(shí) 現(xiàn)構(gòu)成SPI總線接口的四個信號,分別為MISO(串行數(shù)據(jù)輸入)、M0SI (串行數(shù)據(jù)輸出)、SCK (串行移位時鐘)和CS(從使能信號)。其中,SPI總線接口模塊包括8bit讀緩沖器、SPI移位寄 存器、控制寄存器、狀態(tài)寄存器、從選擇寄存器和SPI控制狀態(tài)機(jī);
[0021] 處理器讀或?qū)懣刂萍拇嫫?,用于配置每個SPI總線接口的傳輸模式(主或是從)、 SPI時鐘(串行移位時鐘SCK)的極性和相位W及傳輸速率;
[0022] 根據(jù)處理器從使能信號CS,SPI控制狀態(tài)機(jī)產(chǎn)生相應(yīng)從選擇標(biāo)志位,替換從選擇寄 存器內(nèi)的原從選擇標(biāo)志位,相應(yīng)SPI總線接口輸出有效;并產(chǎn)生時鐘任務(wù)信號控制SPI時鐘 輸出到SPI總線的時機(jī),當(dāng)SPI時鐘的極性和相位與控制寄存器中一個SPI總線接口的對應(yīng) 值相同時,對應(yīng)SPI總線接口開始數(shù)據(jù)傳輸(輸出和輸入),直到SPI時鐘的極性改變;SPI控 制狀態(tài)機(jī)將接收到的數(shù)據(jù)存入8bit讀緩沖器,并控制SPI移位寄存器對緩存數(shù)據(jù)的裝載和 移位;實(shí)時檢測狀態(tài)寄存器的狀態(tài),確定數(shù)據(jù)發(fā)送完成后,裝載下一個數(shù)據(jù)。
[0023] 在本發(fā)明中,8bit讀緩沖器和SPI移位寄存器是SPI總線接口模塊的核屯、部分,目 前,在實(shí)際傳輸中新發(fā)送的數(shù)據(jù)直到前一個數(shù)據(jù)發(fā)送結(jié)束才能寫進(jìn)移位寄存器,為了避免 數(shù)據(jù)溢出,本發(fā)明的CPU發(fā)送端為單緩沖,接收端為雙緩沖,運(yùn)樣接收到的數(shù)據(jù)被送到一個 并行的8bit讀數(shù)據(jù)緩沖器中,使得SPI移位寄存器能夠自由的接收第二個串行數(shù)據(jù),只要第 一個數(shù)據(jù)在第二個數(shù)據(jù)準(zhǔn)備發(fā)送前被讀出8bit讀緩沖器,就不會產(chǎn)生數(shù)據(jù)的溢出。
[0024] 本發(fā)明的狀態(tài)寄存器包含了發(fā)送完成和系統(tǒng)出錯的標(biāo)志位,當(dāng)相應(yīng)的事件發(fā)生 時,運(yùn)些標(biāo)志自動設(shè)置,清除則由軟件來完成。
[0025] 在本發(fā)明中如果一個字節(jié)數(shù)據(jù)傳輸結(jié)束后,數(shù)據(jù)傳輸開始信號依然有效的話,SPI 控制狀態(tài)機(jī)就接著傳輸下一個字節(jié)數(shù)據(jù),且運(yùn)時的SCK信號要繼續(xù)保持有效。
[0026] 在通過SPI總線接口通信時,數(shù)據(jù)是同步進(jìn)行發(fā)送和接收的。數(shù)據(jù)傳輸?shù)拇幸莆?時鐘來自主處理器的時鐘脈沖。本發(fā)明對串行移位時鐘的設(shè)置基于時鐘極性(CP0L)和時鐘 相位(CPHA)兩個參數(shù);CP化定義SPI串行移位時鐘的活動狀態(tài),而CPHA定義相對于數(shù)據(jù)位的 時鐘相位。CP0L和CPHA的設(shè)置決定數(shù)據(jù)取樣的時鐘沿。
[0027] SPI總線接口模塊為了與外設(shè)(從設(shè)備)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,可W設(shè) 置串行移位時鐘極性和相位。圖2為SPI時鐘的時序圖,其中,C表示時鐘(串行移位時鐘),D 表示時鐘前沿?cái)?shù)據(jù)采樣,Q表示時鐘后沿?cái)?shù)據(jù)輸出,MSB為最高有效位;可見,時鐘極性 (CP0L)對傳輸協(xié)議沒有大的影響,如果CP化=0,串行移位時鐘的空閑狀態(tài)為低電平;如果 CP〇L=l,串行移位時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)用于配置進(jìn)行數(shù)據(jù)傳輸?shù)膫?輸協(xié)議(在兩種不同的傳輸協(xié)議中選擇之一進(jìn)行數(shù)據(jù)傳輸),如果CPHA = 0,在串行移位時鐘 的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行移位時鐘的第二個跳變沿 (上升或下降)數(shù)據(jù)被采樣。SPI總線接口模塊的串行移位時鐘和與之通信的外設(shè)時鐘相位 和極性應(yīng)該一致。
[0028] 本發(fā)明數(shù)據(jù)傳輸?shù)倪^程為:從使能信號CS決定唯一與主設(shè)備通信的從設(shè)備(如沒 有CS信號,則只能存在一個從設(shè)備),主設(shè)備(處理器)通過產(chǎn)生串行移位時鐘(SCK)發(fā)起通 信,在通過SPI總線接口通信時,數(shù)據(jù)在串行移位時鐘的上升沿或下降沿從M0SI輸出,在緊 接著的下降沿或上升沿由MIS0讀入,運(yùn)樣經(jīng)過8/16次時鐘改變,完成8/16位數(shù)據(jù)的傳輸。
[0029] 下面例舉出SPI控制狀態(tài)機(jī)通過Verilog硬件描述語言實(shí)現(xiàn)的具體實(shí)例,在該實(shí)例 中,采用自頂向下的設(shè)計(jì)方法,從系統(tǒng)級開始,把系統(tǒng)劃分為幾個基本的單元,其中,主模式 下SPI控制器部分的時序用有限狀態(tài)機(jī)來實(shí)現(xiàn)。用Verilog硬件描述語言實(shí)現(xiàn)SPI控制器的 狀態(tài)機(jī)如下:
[0030]
[0038]顯然,本領(lǐng)域的技術(shù)人員可W對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。運(yùn)樣,倘若本發(fā)明的運(yùn)些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含運(yùn)些改動和變型在內(nèi)。
【主權(quán)項(xiàng)】
1. 一種SPI總線在IPRAN設(shè)備中的實(shí)現(xiàn)方法,其特征在于,具體為: 在CPLD內(nèi)構(gòu)建SPI總線接口模塊,實(shí)現(xiàn)構(gòu)成SPI總線接口的四個信號;其中,SPI總線接 口模塊包括8bit讀緩沖器、SPI移位寄存器、控制寄存器、狀態(tài)寄存器、從選擇寄存器和SPI 控制狀態(tài)機(jī); 主處理器讀或?qū)懣刂萍拇嫫鳎渲妹總€SPI總線接口的傳輸模式、SPI時鐘的極性和相 位以及傳輸速率; 根據(jù)主處理器從使能信號,SPI控制狀態(tài)機(jī)產(chǎn)生相應(yīng)從選擇標(biāo)志位,寫入從選擇寄存 器,相應(yīng)SPI總線接口輸出有效,并產(chǎn)生時鐘任務(wù)信號控制SPI時鐘輸出的時機(jī),控制寄存器 中與SPI時鐘的極性和相位相同的SPI總線接口開始數(shù)據(jù)傳輸;SPI控制狀態(tài)機(jī)將接收到的 數(shù)據(jù)存入8bit讀緩沖器,并控制SPI移位寄存器對緩存數(shù)據(jù)的裝載和移位;實(shí)時檢測狀態(tài)寄 存器的狀態(tài),確定數(shù)據(jù)發(fā)送完成后,裝載下一個數(shù)據(jù)。2. 如權(quán)利要求1所述的方法,其特征在于,8bit讀緩沖器在發(fā)送端為單緩沖,接收端為 雙緩沖。3. 如權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)寄存器包含發(fā)送完成標(biāo)志位和系統(tǒng) 出錯標(biāo)志位,當(dāng)相應(yīng)的事件發(fā)生時,發(fā)送完成標(biāo)志位和系統(tǒng)出錯標(biāo)志位的標(biāo)志自動設(shè)置,清 除則由軟件來完成。4. 如權(quán)利要求2所述的方法,其特征在于,SPI總線接口開始數(shù)據(jù)傳輸后,如果一個字節(jié) 數(shù)據(jù)傳輸結(jié)束后數(shù)據(jù)傳輸開始信號依然有效的話,SPI控制狀態(tài)機(jī)就接著傳輸下一個字節(jié) 數(shù)據(jù),且這時的SCK信號要繼續(xù)保持有效。5. 如權(quán)利要求2所述的方法,其特征在于,在通過SPI總線接口通信時,數(shù)據(jù)是同步進(jìn)行 發(fā)送和接收的;數(shù)據(jù)傳輸?shù)腟PI時鐘來自主處理器的時鐘脈沖。6. 如權(quán)利要求2所述的方法,其特征在于,SPI總線接口模塊的SPI時鐘和與之通信的外 設(shè)時鐘相位和極性一致。
【文檔編號】G06F13/42GK105824777SQ201610158210
【公開日】2016年8月3日
【申請日】2016年3月18日
【發(fā)明人】陳立超
【申請人】烽火通信科技股份有限公司