專利名稱:雙處理器通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù),特別涉及處理器之間的通信技術(shù)。
背景技術(shù):
隨著多媒體技術(shù)的發(fā)展,一個多媒體系統(tǒng)中往往包含多個處理器,每個處理器完成系統(tǒng)的一部分工作,從而有效避免了單個處理器處理能力不夠或響應(yīng)不及時的缺點。但此時,系統(tǒng)中各個處理器之間的協(xié)同工作就顯得格外重要。在計算機領(lǐng)域普遍采用PCI總線技術(shù),在系統(tǒng)級處理器的統(tǒng)一協(xié)調(diào)下進行數(shù)據(jù)傳輸,PCI由于采用模塊化數(shù)字信號傳輸及時分復用技術(shù),且在PCI設(shè)備開發(fā)初期就需解決與系統(tǒng)及處理器的通信問題,因此不存在系統(tǒng)通信的基本問題;而在電視等多媒體顯示領(lǐng)域,普遍采用I2C總線技術(shù)完成各功能模塊的協(xié)調(diào)工作,盡管I2C總線強調(diào)多主處理器功能,但實際上的多媒體系統(tǒng)一般不允許如此操作,否則將極易引起系統(tǒng)失控,因此,多媒體系統(tǒng)中往往采用一個具有主I2C接口的處理器,其他處理器只能有從I2C接口,以此為基礎(chǔ)完成系統(tǒng)間協(xié)同工作。一般來講,具有主控I2C接口的處理器具有更強的處理能力,有時,多媒體系統(tǒng)中需要某個子系統(tǒng)具有較強的處理能力,而因為與主系統(tǒng)處理器同時具有主控I2C接口而引起總線競爭,只能舍棄最好的處理子系統(tǒng)而退而求其次,無形中降低了系統(tǒng)的品質(zhì)。另外UART異步串行通行在系統(tǒng)中一般作為系統(tǒng)調(diào)試用,不利于處理器間通信的需要。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種雙處理器之間通信的方法,能夠在不影響系統(tǒng)間各部分正常通信的前提下,實現(xiàn)兩個處理器之間的數(shù)據(jù)交換。
本發(fā)明解決前述技術(shù)問題所采用的技術(shù)方案是,提供一種雙處理器通信的方法,兩個處理器之間通過預定端口直接通信。所述“直接通信”是指CPU之間通過獨立的連接電路通信,不經(jīng)過總線。
具體的說,包括以下步驟a.第一處理器查詢第二處理器狀態(tài),若第二處理器正常,則繼續(xù)下一步;b.第一處理器輸出指令數(shù)據(jù)到第二寄存器;c.第二處理器從第一寄存器讀取指令數(shù)據(jù);d.第二處理器執(zhí)行指令,然后返回執(zhí)行結(jié)果到第一處理器。所述步驟d為若指令無效,返回無效信息;若指令有效,執(zhí)行指令并返回執(zhí)行結(jié)果。所述步驟d中,返回信息的步驟為第二處理器返回信息到第一寄存器,第一處理器從第一寄存器中讀取返回信息。
可以包括以下通信方式第一處理器輸出指令到第二處理器的GPIO端口,第二處理器返回信息到第一處理器的GPIO端口?;蛘?,第一處理器輸出指令到第二外部寄存器,第二處理器從第二外部寄存器讀取指令;第二處理器返回信息到第一處理器的GPIO端口?;蛘?,第一處理器輸出指令到第二處理器的GPIO端口,第二處理器返回信息到第一外部寄存器,第一處理器從第一外部寄存器讀取信息?;蛘?,第一處理器輸出指令到第二外部寄存器,第二處理器從第二外部寄存器讀取指令;第二處理器返回信息到第一外部寄存器,第一處理器從第一外部寄存器讀取信息。第一處理器發(fā)送的指令包含校驗碼,第二處理器識別指令數(shù)據(jù)時,若校驗碼不正確或者指令無效,則返回無效信息到第一處理器,第一處理器重復發(fā)送當前指令,若發(fā)送次數(shù)超過預設(shè)值,則提示通信故障。
本發(fā)明的有益效果是,雙處理器之間的通信不占用系統(tǒng)資源,避免了總線競爭現(xiàn)象,提高了系統(tǒng)工作效率,并且具有良好的可擴展性。
以下結(jié)合說明書附圖和具體實施方式
對本發(fā)明作進一步說明。
圖1是本發(fā)明實施例1的流程圖。
圖2是本發(fā)明實施例1的硬件結(jié)構(gòu)示意圖。
圖3是本發(fā)明實施例2的硬件結(jié)構(gòu)示意圖。
圖4是本發(fā)明實施例3的硬件結(jié)構(gòu)示意圖。
圖5是本發(fā)明實施例4的硬件結(jié)構(gòu)示意圖。
圖6是本發(fā)明實施例5的硬件結(jié)構(gòu)示意圖。
具體實施例方式
實施例1參見圖1以及圖2(a)、圖2(b)。
系統(tǒng)包括三部分,需要完成數(shù)據(jù)通信的處理器、通信信道。下面對通信信道的選擇及配置、通信編碼方式、通信協(xié)議進行說明1、通信信道的物理連接配置。為簡化通信協(xié)議便于軟件實現(xiàn),本發(fā)明采用兩個GPIO端口實現(xiàn)兩主CPU間的通信,所選擇的GPIO需要能夠輸出PWM、PAM、PPM、PCM、PNM等編碼方式的一種,一般為PWM;R1、R2為上拉電阻,目的為提高信號帶負載能力及保證信號完整性;P1、P2為過壓保護器件;P3、P4為過流保護器件;CPU間的連線過長時需要增加邏輯緩沖電路,以保證信號完整性。
2、數(shù)據(jù)編碼方式。本發(fā)明中提到的需要通信的數(shù)據(jù)分為控制數(shù)據(jù)、狀態(tài)數(shù)據(jù),依據(jù)CPU本身的特性,可以選擇使用具有不同引導碼的PWM、PAM、PPM、PCM、PNM等進行數(shù)據(jù)傳輸,以PWM最易實現(xiàn)。
3、通信協(xié)議。保證在硬件配置成功之后,CPU間正常通信。兩CPU需要根據(jù)各自的系統(tǒng)需要配置命令響應(yīng)項及信號反饋項,并保證在任何情況下,均能正常響應(yīng)請求端發(fā)送的命令。
具體的工作流程首先CPU1、CPU2系統(tǒng)初始化,CPU1通過GPIOa發(fā)送狀態(tài)查詢命令到CPU2的GPIOc;CPU2接收到查詢命令后,通過GPIOd返回狀態(tài)信息到CPU1的GPIOb;CPU1接收到正確的反饋數(shù)據(jù)后則認為CPU2存在并將其作為自身的一個控制對象,否則CPU1認為無其他主控CPU存在。
在CPU1正常工作時,若需要CPU2協(xié)同工作,則通過GPIOa發(fā)送指令數(shù)據(jù)到CPU2的GPIOc,CPU2對指令作出響應(yīng),指令無效則通過GPIOd返回指令無效信息,指令有效則執(zhí)行并通過GPIOd返回執(zhí)行結(jié)果信息。
另外,在復雜的電氣電磁環(huán)境下,需要用到同一指令計數(shù),確保系統(tǒng)通信正常,即CPU2在識別指令數(shù)據(jù)時若校驗碼不正確或指令本身無效,則返回指令無效信息到CPU1,CPU1則重復發(fā)送當前指令,在規(guī)定次數(shù)內(nèi)人不能有效發(fā)送則提示通信故障。
本發(fā)明的基本思路如圖2(b)所示,CPU2通過GPIOc接收來自CPU1 GPIOa發(fā)出的信號,存儲在CPU內(nèi)部寄存器中,同時反饋信號接收情況;CPU2檢測寄存器值并與數(shù)據(jù)存儲器中定義數(shù)據(jù)相比較,執(zhí)行相應(yīng)操作,并將操作執(zhí)行情況反饋CPU1。
實施例2參見圖3。本實施例是在CPU1無多余GPIO情況下,使用外部寄存器,如EEPROM或FLASH ROM數(shù)據(jù)總線進行擴充GPIO的情況。硬件配置上增加總線開關(guān)電路,通道控制信號使用CPU1的CS1(CHIPSELECT)信號。
軟件流程系統(tǒng)啟動時,CPU1通過CS1將總線開關(guān)接通FLASHROM,調(diào)用系統(tǒng)程序;系統(tǒng)啟動完成,總線開關(guān)接通CPU2的GPIO。其余流程與實施例1相同。
實施例3參見圖4。本實施例屬于CPU2無多余GPIO的情況下實施。在硬件配置增加了總線開關(guān)電路2,通道控制信號使用CPU2的CS2信號。
軟件流程系統(tǒng)啟動時,CPU2通過CS2將總線開關(guān)接通FLASHROM,調(diào)用系統(tǒng)程序;系統(tǒng)啟動完成,總線開關(guān)接通CPU1的GPIO。其余流程與實施例1相同。
實施例4參見圖5。本實施例是CPU1\CPU2均無多余GPIO的情況下的實施情況。硬件配置上增加了兩個總線開關(guān)電路,通道控制信號分別使用CPU1\CPU2的CS1\CS2信號。
軟件流程系統(tǒng)啟動時,CPU1通過CS1將總線開關(guān)接通FLASHROM,調(diào)用系統(tǒng)程序;系統(tǒng)啟動完成,總線開關(guān)1接通總線開關(guān)2。CPU2通過CS2將總線開關(guān)2接通FLASH2,調(diào)用系統(tǒng)程序;系統(tǒng)啟動完成,總線開關(guān)2接通總線開關(guān)1。其余流程與實施例1相同。
實施例5參見圖6(a)-圖6(c)。本實施例是在CPU無多余GPIO情況下,使用I2C總線進行擴充GPIO的實施例,包含可能出現(xiàn)的三種情況。圖6(a)為CPU1無多余GPIO的情況,圖6(b)為CPU2無多余GPIO的情況,圖6(c)為兩個CPU都無多余GPIO的情況。
I2C總線、GPIO端口轉(zhuǎn)換電路已屬成熟技術(shù),如PHILIPS PCF8574單片可通過I2C擴充8路GPIO端口。此處不再贅述。
權(quán)利要求
1.雙處理器通信的方法,其特征在于,兩個處理器之間通過預定端口直接通信。
2.如權(quán)利要求1所述的雙處理器通信的方法,其特征在于,包括以下步驟a.第一處理器查詢第二處理器狀態(tài),若第二處理器正常,則繼續(xù)下一步;b.第一處理器輸出指令數(shù)據(jù)到第二寄存器;c.第二處理器從第一寄存器讀取指令數(shù)據(jù);d.第二處理器執(zhí)行指令,然后返回執(zhí)行結(jié)果到第一處理器。
3.如權(quán)利要求2所述的雙處理器通信的方法,其特征在于,所述步驟d為若指令無效,返回無效信息;若指令有效,執(zhí)行指令并返回執(zhí)行結(jié)果。
4.如權(quán)利要求2或3所述的雙處理器通信的方法,其特征在于,所述步驟d中,返回信息的步驟為第二處理器返回信息到第一寄存器,第一處理器從第一寄存器中讀取返回信息。
5.如權(quán)利要求4所述的雙處理器通信的方法,其特征在于,第一處理器輸出指令到第二處理器的GPIO端口,第二處理器返回信息到第一處理器的GPIO端口。
6.如權(quán)利要求4所述的雙處理器通信的方法,其特征在于,第一處理器輸出指令到第二外部寄存器,第二處理器從第二外部寄存器讀取指令;第二處理器返回信息到第一處理器的GPIO端口。
7.如權(quán)利要求4所述的雙處理器通信的方法,其特征在于,第一處理器輸出指令到第二處理器的GPIO端口,第二處理器返回信息到第一外部寄存器,第一處理器從第一外部寄存器讀取信息。
8.如權(quán)利要求4所述的雙處理器通信的方法,其特征在于,第一處理器輸出指令到第二外部寄存器,第二處理器從第二外部寄存器讀取指令;第二處理器返回信息到第一外部寄存器,第一處理器從第一外部寄存器讀取信息。
9.如權(quán)利要求4所述的雙處理器通信的方法,其特征在于,第一處理器發(fā)送的指令包含校驗碼,第二處理器識別指令數(shù)據(jù)時,若校驗碼不正確或者指令無效,則返回無效信息到第一處理器,第一處理器重復發(fā)送當前指令,若發(fā)送次數(shù)超過預設(shè)值,則提示通信故障。
全文摘要
雙處理器通信的方法,涉及計算機技術(shù),特別涉及處理器之間的通信技術(shù)。本發(fā)明提供的雙處理器通信的方法,兩個處理器之間通過預定端口直接通信。本發(fā)明的有益效果是,雙處理器之間的通信不占用系統(tǒng)資源,避免了總線競爭現(xiàn)象,提高了系統(tǒng)工作效率,并且具有良好的可擴展性。
文檔編號G06F15/163GK1687919SQ20051002077
公開日2005年10月26日 申請日期2005年4月22日 優(yōu)先權(quán)日2005年4月22日
發(fā)明者余杰, 鄧新群 申請人:四川長虹電器股份有限公司