本發(fā)明涉及通信領(lǐng)域,具體涉及一種單板上多個(gè)處理器調(diào)試口復(fù)用切換方法和裝置。
技術(shù)背景
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們對(duì)路由器提出了更高的要求,路由器系統(tǒng)的復(fù)雜度越來越高,在單個(gè)單板(處理器模塊)上采用兩個(gè)或者多個(gè)處理器的設(shè)計(jì)層出不窮。為了節(jié)約單板的成本和PCB空間,提升用戶體驗(yàn),多個(gè)處理器之間調(diào)試口(串口和網(wǎng)口)的復(fù)用成為設(shè)計(jì)中必須精心處理的問題?,F(xiàn)有技術(shù)對(duì)于單板上多個(gè)處理器串口、網(wǎng)口復(fù)用的切換方法已比較成熟。中國專利申請(qǐng)CN201310220104.9,設(shè)計(jì)了多個(gè)處理器的串口切換電路,能將多個(gè)處理器的串口共用一個(gè)面板串口插座,通過拔插跳線帽來實(shí)現(xiàn)面板串口插座連接到不同的處理器串口。另一件中國專利申請(qǐng)CN200910172971.3,發(fā)明了一種以太網(wǎng)口切換方法和裝置,能夠通過撥碼開關(guān)控制模擬開關(guān),從而實(shí)現(xiàn)兩個(gè)內(nèi)部網(wǎng)口復(fù)用一個(gè)外部以太網(wǎng)插座。與出多個(gè)串口、網(wǎng)口相比,這兩個(gè)設(shè)計(jì)雖然通過復(fù)用插座的方法降低了單板設(shè)計(jì)成本,減小了PCB面積,但是插拔和撥碼的操作不夠方便,難免影響客戶的用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于解決以下兩個(gè)問題,一是使單板上多個(gè)處理器的調(diào)試串口能復(fù)用一個(gè)串口插座,通過命令的方式實(shí)現(xiàn)不同處理器串口間切換;二是使單板上多個(gè)處理器的調(diào)試網(wǎng)口能復(fù)用一個(gè)網(wǎng)口插座,通過命令的方式實(shí)現(xiàn)不同處理器網(wǎng)口間的切換。
本發(fā)明提供了一種一種單板上多個(gè)處理器調(diào)試口復(fù)用切換裝置,包含調(diào)試串口、 電平轉(zhuǎn)換模塊、處理器模塊、指示燈、調(diào)試網(wǎng)口、變壓器、模擬開關(guān)、PHY模塊;還包括可編程邏輯器件 ,可編程邏輯器件由采樣時(shí)鐘產(chǎn)生模塊、串口數(shù)據(jù)幀接收和解析模塊、串口切換控制模塊、切換結(jié)果指示模塊以及網(wǎng)口切換控制模塊組成,串口數(shù)據(jù)幀接收和解析模塊分別和時(shí)鐘產(chǎn)生模塊、串口切換控制模塊、切換結(jié)果指示模塊以及網(wǎng)口切換控制模塊相連接;調(diào)試串口與電平轉(zhuǎn)換模塊相連,可編程邏輯器件分別與電平轉(zhuǎn)換模塊、指示燈、模擬開關(guān)、以及處理器模塊上所有CPU的串口信號(hào)相連;調(diào)試網(wǎng)口與變壓器相連;模擬開關(guān)與變壓器、可編程邏輯器件相連,模擬開關(guān)還與PHY模塊上的以太網(wǎng)口信號(hào)口相連。
本發(fā)明所提供的裝置,通過可編程邏輯器件接收和識(shí)別調(diào)試機(jī)發(fā)送到調(diào)試串口的串口/網(wǎng)口切換命令,并根據(jù)不同的切換命令,對(duì)串口/網(wǎng)口進(jìn)行切換,從而把選定CPU的串口/網(wǎng)口信號(hào)選通到調(diào)試串口或調(diào)試網(wǎng)口上。
本發(fā)明還提供了一種單板上多個(gè)處理器調(diào)試口復(fù)用的切換方法,包括以下步驟:
(1)處理器模塊上電,可編程邏輯器件中的串口切換控制模塊默認(rèn)選擇處理器模塊上某一處理器的串口與面板串口連通,并通過指示燈指示;
(2)調(diào)試機(jī)通過調(diào)試串口、電平轉(zhuǎn)換模塊給可編程邏輯器件發(fā)送串口數(shù)據(jù)幀,串口數(shù)據(jù)幀接收和解析模塊不斷的偵聽、判斷是否收到數(shù)據(jù)幀;
(3)若串口數(shù)據(jù)幀接收和解析模塊偵聽到串口數(shù)據(jù)幀,發(fā)送FRAME_START信號(hào)給采樣時(shí)鐘產(chǎn)生模塊,啟動(dòng)串口信號(hào)采樣時(shí)鐘。若沒有接收到該串口數(shù)據(jù)幀,則保持偵聽狀態(tài);
(4)串口數(shù)據(jù)幀接收和解析模塊通過采樣時(shí)鐘產(chǎn)生模塊產(chǎn)生的時(shí)鐘對(duì)串口數(shù)據(jù)幀信號(hào)進(jìn)行采樣,并保存數(shù)據(jù)幀中的有效數(shù)據(jù);
(5)串口數(shù)據(jù)幀接收和解析模塊判斷串口數(shù)據(jù)幀是否傳輸完畢,傳輸完畢則發(fā)送FRAME_END信號(hào)給采樣時(shí)鐘產(chǎn)生模塊,并關(guān)閉串口信號(hào)采樣時(shí)鐘,未傳輸完畢則繼續(xù)采樣和保存數(shù)據(jù)幀中有效數(shù)據(jù);
(6)串口數(shù)據(jù)幀接收和解析模塊判斷保存的有效數(shù)據(jù)是否為串口/網(wǎng)口切換命令,若不是串口/網(wǎng)口切換命令,則切換標(biāo)志UART_SEL/ OAM_SEL保持不變,流程返回到步驟(2);若是串口切換命令,則把新的切換標(biāo)志UART_SEL送給串口切換控制模塊;串口切換控制模塊根據(jù)UART_SEL信號(hào)把目標(biāo)CPU的串口信號(hào)選通到調(diào)試串口,若是網(wǎng)口切換命令,則把新的切換標(biāo)志OAM_SEL送給網(wǎng)口切換控制模塊,網(wǎng)口切換控制模塊對(duì)模擬開關(guān)發(fā)送選通控制信號(hào),模擬開關(guān)把目標(biāo)CPU對(duì)應(yīng)PHY 模塊上的網(wǎng)口信號(hào)選通到調(diào)試網(wǎng)口;
(7)切換結(jié)果指示模塊根據(jù)選通結(jié)果進(jìn)行點(diǎn)燈,對(duì)外指示CPU串口/網(wǎng)口切換結(jié)果。
本發(fā)明所提供的方法和裝置,與現(xiàn)有技術(shù)相比,本發(fā)明能夠采用輸入串口命令的方式實(shí)現(xiàn)單板(處理器模塊)上多個(gè)處理器串口/網(wǎng)口的復(fù)用,且整個(gè)過程均通過單板上的可編程邏輯器件(CPLD)來處理,無須任何一個(gè)CPU參與控制。與現(xiàn)有通過插拔或撥碼的串口/網(wǎng)口復(fù)用方式相比,切換方式更加方便,提高了用戶體驗(yàn)。與現(xiàn)有的通過CPU識(shí)別串口切換命令的串口復(fù)用方式相比,本發(fā)明無需單板上任何一個(gè)CPU參與控制,減輕了CPU的負(fù)擔(dān),使CPU專注于完成其自身的功能,使單板上各個(gè)電路模塊的功能更加清晰獨(dú)立。
附圖說明:
圖1 是 本發(fā)明主要功能模塊的框圖;
具體實(shí)施方式:
下面結(jié)合實(shí)施例對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步的詳細(xì)描述:
實(shí)施例1:
參照附圖1,一種單板上多個(gè)處理器調(diào)試口復(fù)用切換裝置,包含調(diào)試串口10、 電平轉(zhuǎn)換模塊20、處理器模塊80、指示燈90、調(diào)試網(wǎng)口100、變壓器110、模擬開關(guān)120、PHY模塊140;還包括可編程邏輯器件 70,所述的可編程邏輯器件 70由采樣時(shí)鐘產(chǎn)生模塊30、串口數(shù)據(jù)幀接收和解析模塊40、串口切換控制模塊50、切換結(jié)果指示模塊60以及網(wǎng)口切換控制模塊130組成,串口數(shù)據(jù)幀接收和解析模塊40分別和時(shí)鐘產(chǎn)生模塊30、串口切換控制模塊50、切換結(jié)果指示模塊60以及網(wǎng)口切換控制模塊130相連接;調(diào)試串口10與電平轉(zhuǎn)換模塊20相連,可編程邏輯器件70分別與電平轉(zhuǎn)換模塊20、指示燈90、模擬開關(guān)120、以及處理器模塊80上所有CPU的串口信號(hào)相連;調(diào)試網(wǎng)口100與變壓器110相連;模擬開關(guān)120與變壓器110、可編程邏輯器件70相連,模擬開關(guān)120還與PHY模塊140上的以太網(wǎng)口信號(hào)口相連。
調(diào)試機(jī)發(fā)送的串口信號(hào)可經(jīng)依次調(diào)試串口10、電平轉(zhuǎn)換模塊20送到可編程邏輯器件70的UART_RX信號(hào)管腳??删幊踢壿嬈骷?0中的串口數(shù)據(jù)幀接收和解析模塊40檢測(cè)該管腳信號(hào)的下降沿,并輸出一個(gè)FRAME_START(高電平脈沖)信號(hào)給采樣時(shí)鐘產(chǎn)生模塊30,表示一幀數(shù)據(jù)接收工作已經(jīng)開始,請(qǐng)求其輸出采樣時(shí)鐘。采樣時(shí)鐘產(chǎn)生模塊30根據(jù)設(shè)置的串口波特率,對(duì)可編程邏輯器件70中的時(shí)鐘進(jìn)行計(jì)數(shù)分頻,產(chǎn)生與串口波特率一致的采樣時(shí)鐘。
采樣時(shí)鐘對(duì)輸入到串口數(shù)據(jù)幀接收和解析模塊40的串口信號(hào)進(jìn)行采樣,并根據(jù)串口傳輸協(xié)議保存有效數(shù)據(jù)。
設(shè)計(jì)中采用的串口協(xié)議為:波特率115200bps,起始位1bit,數(shù)據(jù)位8bits(低位在前、高位在后),奇偶校驗(yàn)位NONE,停止位1bit。
串口數(shù)據(jù)幀接收和解析模塊40中設(shè)計(jì)了一個(gè)8bits的串口數(shù)據(jù)寄存器R_rx_temp_data,用于保存采樣到的串口數(shù)據(jù)幀中的有效數(shù)據(jù)。串口數(shù)據(jù)幀接收和解析模塊40從檢測(cè)到數(shù)據(jù)幀的第一個(gè)下降沿后,對(duì)采樣時(shí)鐘產(chǎn)生模塊30產(chǎn)生的每個(gè)時(shí)鐘進(jìn)行計(jì)數(shù),從0開始計(jì)起,并把1-8時(shí)鐘周期采樣的數(shù)據(jù)保存到R_rx_temp_data。第0、9、10采樣周期采樣的值忽略。第10個(gè)采樣周期后,把對(duì)采樣時(shí)鐘的計(jì)數(shù)清零。
把保存的R_rx_temp_data中的值與設(shè)定的串口/網(wǎng)口切換命令A(yù)SCII碼值倒序后的值對(duì)比,判斷是否為串口/網(wǎng)口切換命令,并輸出UART_SEL / OAM_SEL指示位給串口切換控制模塊50以及網(wǎng)口切換控制模塊130。若R_rx_temp_data是串口切換命令,UART_SEL值會(huì)發(fā)生變化。串口切換控制模塊50根據(jù)輸入的UART_SEL值把目標(biāo)CPU的串口信號(hào)選通到與調(diào)試串口10連通的可編程邏輯器件70的信號(hào)管腳,實(shí)現(xiàn)多個(gè)CPU之間的串口切換。同時(shí)把切換的標(biāo)志送給切換結(jié)果指示模塊60進(jìn)行點(diǎn)燈指示;
若是網(wǎng)口切換命令,OAM_SEL值會(huì)發(fā)生變化。網(wǎng)口切換控制模塊130根據(jù)OAM_SEL值向模擬開關(guān)120發(fā)出切換控制信號(hào),模擬開關(guān)120根據(jù)切換控制信號(hào)把目標(biāo)CPU對(duì)應(yīng)PHY的網(wǎng)口信號(hào)選通到調(diào)試網(wǎng)口100,實(shí)現(xiàn)多個(gè)CPU之間的網(wǎng)口切換。同時(shí)把切換的標(biāo)志送給切換結(jié)果指示模塊60進(jìn)行點(diǎn)燈指示。
若不是串口/切換命令,則串口切換控制模塊50、網(wǎng)口切換控制模塊130和切換結(jié)果指示模塊60不動(dòng)作。串口數(shù)據(jù)幀接收和解析模塊40繼續(xù)偵聽新的串口數(shù)據(jù)幀。
實(shí)施例2:
參照附圖1,一種單板上多個(gè)處理器調(diào)試口復(fù)用切換的方法,包含以下步驟:
步驟一:處理器模塊80上電,可編程邏輯器件70中的串口切換控制模塊50默認(rèn)選擇處理器模塊80上某一處理器的串口與面板串口連通,并通過指示燈指示;
步驟二:調(diào)試機(jī)通過調(diào)試串口10、電平轉(zhuǎn)換模塊20給可編程邏輯器件70發(fā)送串口數(shù)據(jù)幀,串口數(shù)據(jù)幀接收和解析模塊40不斷的偵聽、判斷是否收到數(shù)據(jù)幀;
步驟三:若串口數(shù)據(jù)幀接收和解析模塊40偵聽到串口數(shù)據(jù)幀,發(fā)送FRAME_START信號(hào)給采樣時(shí)鐘產(chǎn)生模塊30,啟動(dòng)串口信號(hào)采樣時(shí)鐘。若沒有接收到該串口數(shù)據(jù)幀,則保持偵聽狀態(tài);
步驟四:串口數(shù)據(jù)幀接收和解析模塊40通過采樣時(shí)鐘產(chǎn)生模塊30產(chǎn)生的時(shí)鐘對(duì)串口數(shù)據(jù)幀信號(hào)進(jìn)行采樣,并保存數(shù)據(jù)幀中的有效數(shù)據(jù);
步驟五:串口數(shù)據(jù)幀接收和解析模塊40判斷串口數(shù)據(jù)幀是否傳輸完畢,傳輸完畢則發(fā)送FRAME_END信號(hào)給采樣時(shí)鐘產(chǎn)生模塊30,并關(guān)閉串口信號(hào)采樣時(shí)鐘,未傳輸完畢則繼續(xù)采樣和保存數(shù)據(jù)幀中有效數(shù)據(jù);
步驟六:串口數(shù)據(jù)幀接收和解析模塊40判斷保存的有效數(shù)據(jù)是否為串口/網(wǎng)口切換命令,若不是串口/網(wǎng)口切換命令,則切換標(biāo)志UART_SEL/ OAM_SEL保持不變,流程返回到步驟二;若是串口切換命令,則把新的切換標(biāo)志UART_SEL送給串口切換控制模塊50;串口切換控制模塊50根據(jù)UART_SEL信號(hào)把目標(biāo)CPU的串口信號(hào)選通到調(diào)試串口10,若是網(wǎng)口切換命令,則把新的切換標(biāo)志OAM_SEL送給網(wǎng)口切換控制模塊130,網(wǎng)口切換控制模塊130對(duì)模擬開關(guān)120發(fā)送選通控制信號(hào),模擬開關(guān)120把目標(biāo)CPU對(duì)應(yīng)PHY 模塊140上的網(wǎng)口信號(hào)選通到調(diào)試網(wǎng)口100;
步驟七:切換結(jié)果指示模塊60根據(jù)選通結(jié)果進(jìn)行點(diǎn)燈,對(duì)外指示CPU串口/網(wǎng)口切換結(jié)果。