Dsp與cpld之間安全并行總線的處理方法
【專利摘要】本發(fā)明公開了一種DSP與CPLD之間安全并行總線的處理方法;包括:對地址分配部分,數(shù)據(jù)總線部分和通訊安全回復(fù)機(jī)制。本發(fā)明能夠有效解決由于數(shù)字信號處理器DSP并行總線間通信錯(cuò)誤而導(dǎo)致的安全問題,能夠使數(shù)字信號處理器DSP發(fā)現(xiàn)總線間通信錯(cuò)誤原因。
【專利說明】DSP與CPLD之間安全并行總線的處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種可以應(yīng)用于安全信號系統(tǒng)、工業(yè)控制信號系統(tǒng)等系統(tǒng)中的,基于數(shù)字信號處理器(DSP)與復(fù)雜可編程邏輯器件(CPLD)之間的安全并行總線的處理方法。
【背景技術(shù)】
[0002]數(shù)字信號處理器DSP芯片由于質(zhì)量可靠,性能優(yōu)越而被大量使用在安全系統(tǒng)中,而在數(shù)字信號處理器DSP系統(tǒng)中,并行總線由于傳輸數(shù)據(jù)量大,速度快,的處理方法簡單而被廣泛應(yīng)用。典型的數(shù)字信號處理器DSP并行總線物理層如圖1所示,包含地址(AddressBus)、數(shù)據(jù)(Data Bus)、讀控制(Read Control)、寫控制(Write Control)四組信號,這四組信號依據(jù)特定的時(shí)序完成主數(shù)字信號處理器DSP對外設(shè)的讀寫操作。寫操作時(shí),數(shù)字信號處理器DSP先給出地址信號,再將寫控制信號拉低,同時(shí)將數(shù)據(jù)寫入數(shù)據(jù)總線,外設(shè)在寫信號上升沿將數(shù)據(jù)讀出。讀操作時(shí),數(shù)字信號處理器DSP先給出地址信號,再將讀控制信號拉低,外設(shè)在讀信號下降沿將數(shù)據(jù)寫入數(shù)據(jù)總線,數(shù)字信號處理器DSP在讀信號上升沿將數(shù)據(jù)讀出。讀寫時(shí)數(shù)字信號處理器DSP總線上時(shí)序詳見圖2及圖3。
[0003]復(fù)雜可編程邏輯器件CPLD,作為一種可編程的邏輯器件,經(jīng)常會以外設(shè)的形式幫助數(shù)字信號處理器DSP完成數(shù)字信號處理器DSP無法覆蓋的功能。如,可以用復(fù)雜可編程邏輯器件CPLD實(shí)現(xiàn)數(shù)字信號處理器DSP IO管腳的擴(kuò)展,可以利用復(fù)雜可編程邏輯器件CPLD的晶振實(shí)現(xiàn)對數(shù)字信號處理器DSP時(shí)鐘的監(jiān)控,或者可以用復(fù)雜可編程邏輯器件CPLD實(shí)現(xiàn)外部看門狗功能。
[0004]考慮到復(fù)雜可編程邏輯器件CPLD在處理復(fù)雜時(shí)序邏輯時(shí)耗用資源較多,所以目前在數(shù)字信號處理器DSP于復(fù)雜可編程邏輯器件CPLD間的連接方式多以并行總線為主。即數(shù)字信號處理器DSP在讀控制信號的上升沿采集復(fù)雜可編程邏輯器件CPLD中對應(yīng)數(shù)字信號處理器DSP發(fā)出地址的數(shù)據(jù),復(fù)雜可編程邏輯器件CPLD在寫控制信號的上升沿將數(shù)據(jù)鎖存至復(fù)雜可編程邏輯器件CPLD中對應(yīng)數(shù)字信號處理器DSP發(fā)出地址的寄存器中。
[0005]但是,只是用該總線方式并不能有效保證通訊的安全。尤其在軌道交通行業(yè),由于受到強(qiáng)外界干擾,并行總線上的很容易發(fā)生單比特或者多比特的數(shù)據(jù)翻轉(zhuǎn),使得錯(cuò)誤的數(shù)據(jù)被讀寫或者向錯(cuò)誤的地址讀寫的概率大大增大。如果數(shù)字信號處理器DSP系統(tǒng)對此沒有充分防護(hù),則有可能出現(xiàn)車毀人亡的情況。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是提供一種DSP與CPLD之間安全并行總線的處理方法,它可以有效解決由于數(shù)字信號處理器DSP并行總線間通信錯(cuò)誤而導(dǎo)致的安全問題。
[0007]為了解決以上技術(shù)問題,本發(fā)明提供了一種DSP與CPLD之間安全并行總線的處理方法;包括:對地址分配部分,數(shù)據(jù)總線部分和通訊安全回復(fù)機(jī)制。
[0008]本發(fā)明的有益效果在于:能夠有效解決由于數(shù)字信號處理器DSP并行總線間通信錯(cuò)誤而導(dǎo)致的安全問題,能夠使數(shù)字信號處理器DSP發(fā)現(xiàn)總線間通信錯(cuò)誤原因。[0009]數(shù)字信號處理器DSP與復(fù)雜可編程邏輯器件CPLD之間地址及數(shù)據(jù)都為編碼信息,且數(shù)字信號處理器DSP在執(zhí)行完寫操作時(shí)必須再執(zhí)行一遍對復(fù)雜可編程邏輯器件CPLD特定狀態(tài)寄存器LSR的讀寫,如果讀出的LSR值不等于狀態(tài)編碼1,數(shù)字信號處理器DSP將認(rèn)為寫操作失敗,而數(shù)字信號處理器DSP在執(zhí)行讀操作時(shí)必須執(zhí)行對復(fù)雜可編程邏輯器件CPLD數(shù)據(jù)的校驗(yàn)以判斷數(shù)據(jù)正確性。
[0010]在數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD寫數(shù)據(jù)時(shí),復(fù)雜可編程邏輯器件CPLD將首先記錄地址和數(shù)據(jù)至LAR和LDR并校核從數(shù)字信號處理器DSP端來的地址,如果出錯(cuò),則記錄狀態(tài)編碼I至LSR,否則校核數(shù)字信號處理器DSP端來的地址,如果出錯(cuò),則記錄狀態(tài)編碼2至LSR,否則記錄狀態(tài)編碼3至LSR并且執(zhí)行相關(guān)操作。
[0011 ] 在數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD讀數(shù)據(jù)時(shí),復(fù)雜可編程邏輯器件CPLD將首先校核從數(shù)字信號處理器DSP端來的地址,如果出錯(cuò),則輸出錯(cuò)誤編碼I至數(shù)據(jù)總線,否則發(fā)送正常功能值。
【專利附圖】
【附圖說明】
[0012]下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0013]圖1是常見的并行總線示意圖,包括數(shù)據(jù)總線,地址總線和讀寫控制信號。
[0014]圖2是數(shù)字信號處理器DSP的讀/寫操作時(shí)序示意圖。
[0015]圖3并行總線的物理層-讀時(shí)序示意圖。
[0016]圖4是通訊安全回復(fù)機(jī)制示意圖。
[0017]圖5是對于數(shù)字信號處理器DSP寫操作時(shí),數(shù)字信號處理器DSP和復(fù)雜可編程邏輯器件CPLD各自的操作流程圖。
[0018]圖6是對于數(shù)字信號處理器DSP讀操作時(shí),數(shù)字信號處理器DSP和復(fù)雜可編程邏輯器件CPLD各自的操作流程示意圖。
【具體實(shí)施方式】
[0019]本發(fā)明公開了一種可以應(yīng)用于安全信號系統(tǒng)、工業(yè)控制信號系統(tǒng)等系統(tǒng)中的,基于數(shù)字信號處理器(DSP)與復(fù)雜可編程邏輯器件(CPLD)之間的安全并行總線的處理方法。該總線在數(shù)字信號處理器DSP并行總線物理層的基礎(chǔ)上,對總線的處理方法做了規(guī)定,使得應(yīng)用了本設(shè)計(jì)的數(shù)字信號處理器DSP系統(tǒng)能夠有效的防護(hù)總線錯(cuò)誤而產(chǎn)生的安全問題。本發(fā)明在數(shù)字信號處理器DSP并行總線的基礎(chǔ)上,加入安全的處理方法,有效避免了數(shù)字信號處理器DSP與復(fù)雜可編程邏輯器件CPLD之間通訊錯(cuò)誤而產(chǎn)生的安全問題。本發(fā)明設(shè)計(jì)了一種安全并行總線的處理方法,該的處理方法約定了地址總線的地址分配,數(shù)據(jù)總線的編碼要求及相關(guān)安全回復(fù)機(jī)制。
[0020]1、地址總線部分
[0021]數(shù)字信號處理器DSP地址總線可分為塊地址(3bit)和通用地址(19bit),合計(jì)22bit。為了使地址能夠提供校驗(yàn)?zāi)芰?,地址總線的低4bit設(shè)計(jì)成前18bit的CRC碼。CRC多項(xiàng)式為10011,例如,在塊地址為101時(shí),排除全O和全I(xiàn)的地址外(安全系統(tǒng)不允許使用),所有的可用地址為:
[0022]101_00_0000_0000_0001_110I[0023]101_00_0000_0000_0010_1000
[0024]101_00_0000_0000_00I1_10II
[0025]......[0026]101_11_1II1_1II1_1101_0000
[0027]101_11_1111_1111_1110_0101
[0028]復(fù)雜可編程邏輯器件CPLD收到地址時(shí),對檢測到地址做CRC校驗(yàn),如果校驗(yàn)結(jié)果不正確,復(fù)雜可編程邏輯器件CPLD即認(rèn)為地址無效。
[0029]2、數(shù)據(jù)總線部分
[0030]數(shù)據(jù)總線(16bit)上的數(shù)據(jù)都為編碼數(shù)據(jù),編碼強(qiáng)度可以根據(jù)實(shí)際應(yīng)用做出調(diào)節(jié)。例如數(shù)字信號處理器DSP可以與復(fù)雜可編程邏輯器件CPLD約定:當(dāng)數(shù)字信號處理器DSP在某一約定的地址線上送一特定數(shù)值時(shí)(可以為一特定數(shù)值如50AF,也可為12bit加上4bitCRC碼),復(fù)雜可編程邏輯器件CPLD將完成某一功能。
[0031]當(dāng)復(fù)雜可編程邏輯器件CPLD檢測到上述數(shù)據(jù)不符合先前約定值,或者相應(yīng)的校驗(yàn)不通過時(shí),復(fù)雜可編程邏輯器件CPLD即認(rèn)為數(shù)據(jù)校驗(yàn)出錯(cuò)。
[0032]3、通訊安全回復(fù)機(jī)制
[0033]在復(fù)雜可編程邏輯器件CPLD中實(shí)現(xiàn)3個(gè)16bit的寄存器,分別為上周期狀態(tài)寄存器(LSR),上周期地址寄存器(LAR),上周期數(shù)據(jù)寄存器(LDR)。
[0034]對復(fù)雜可編程邏輯器件CPLD而言,每次數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD寫數(shù)據(jù)時(shí),復(fù)雜可編程邏輯器件CPLD都將記錄原輸入地址至LAR,記錄原輸入數(shù)據(jù)至LDR,并先校驗(yàn)地址,如果地址正確,則校驗(yàn)數(shù)據(jù),否則LSR將用狀態(tài)編碼I表示地址出錯(cuò)。如果數(shù)據(jù)校驗(yàn)出錯(cuò),LSR將用狀態(tài)編碼2表示數(shù)據(jù)出錯(cuò),否則LSR將用狀態(tài)編碼3表示地址數(shù)據(jù)都正確。如果LSR的狀態(tài)不是狀態(tài)編碼3,復(fù)雜可編程邏輯器件CPLD不會執(zhí)行操作或者導(dǎo)向安全側(cè)(即跳轉(zhuǎn)至默認(rèn)安全態(tài))。
[0035]對數(shù)字信號處理器DSP而言,每次數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD寫數(shù)據(jù)后,數(shù)字信號處理器DSP必須讀取一次復(fù)雜可編程邏輯器件CPLD中LSR寄存器的值,當(dāng)讀到為狀態(tài)編碼3時(shí),數(shù)字信號處理器DSP才繼續(xù)下一次寫操作,否則數(shù)字信號處理器DSP將導(dǎo)向安全側(cè)或者讀回復(fù)雜可編程邏輯器件CPLD中LAR及LDR的值以判別是否有非期望地址/數(shù)據(jù)。
[0036]而數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD讀數(shù)據(jù)時(shí),復(fù)雜可編程邏輯器件CPLD會校驗(yàn)數(shù)字信號處理器DSP發(fā)出的地址是否正確,并根據(jù)該校驗(yàn)結(jié)果發(fā)送相關(guān)功能編碼值以傳輸給數(shù)字信號處理器DSP或者一個(gè)固定的錯(cuò)誤編碼I以通知數(shù)字信號處理器DSP發(fā)出的地址錯(cuò)誤,且該錯(cuò)誤編碼I不同于任何功能值。數(shù)字信號處理器DSP收到復(fù)雜可編程邏輯器件CPLD發(fā)來的數(shù)據(jù)時(shí)也會進(jìn)行數(shù)據(jù)校驗(yàn)。只有當(dāng)輸入數(shù)據(jù)校驗(yàn)正確并且屬于數(shù)字信號處理器DSP發(fā)出的地址所對應(yīng)的有效數(shù)據(jù)時(shí),數(shù)字信號處理器DSP才會認(rèn)為接收成功。如圖4所示。
[0037]本發(fā)明能夠有效解決由于數(shù)字信號處理器DSP并行總線間通信錯(cuò)誤而導(dǎo)致的安全問題,能夠使數(shù)字信號處理器DSP發(fā)現(xiàn)總線間通信錯(cuò)誤原因。
[0038]下面就結(jié)合圖5、圖6介紹本發(fā)明的【具體實(shí)施方式】。
[0039]數(shù)字信號處理器DSP執(zhí)行寫操作時(shí),首先發(fā)出編碼地址和編碼數(shù)據(jù),復(fù)雜可編程邏輯器件CPLD將記錄總線上的地址和數(shù)據(jù)至LAR LDR并檢測地址和數(shù)據(jù)的校驗(yàn)正確性,如正確則執(zhí)行相關(guān)功能,否則將導(dǎo)向安全側(cè)并記錄表示校驗(yàn)錯(cuò)誤的相關(guān)狀態(tài)編碼至LSR。而數(shù)字信號處理器DSP會讀出LSR以判斷該寫操作是否成功,如不成功,將讀出復(fù)雜可編程邏輯器件CPLD中LAR LDR寄存器的值以判別錯(cuò)誤原因。
[0040]數(shù)字信號處理器DSP執(zhí)行讀操作時(shí),首先發(fā)出地址數(shù)據(jù),復(fù)雜可編程邏輯器件CPLD將檢測地址校驗(yàn)正確性,如正確則發(fā)送相關(guān)功能值,否則發(fā)送錯(cuò)誤編碼I至數(shù)據(jù)總線。數(shù)字信號處理器DSP在得到數(shù)據(jù)時(shí)首先會判斷該數(shù)據(jù)是否為錯(cuò)誤編碼,如果不是則進(jìn)一步判別該數(shù)據(jù)編碼校驗(yàn)正確性。當(dāng)檢測到數(shù)據(jù)位錯(cuò)誤編碼或者數(shù)據(jù)編碼校驗(yàn)錯(cuò)誤時(shí),數(shù)字信號處理器DSP即可認(rèn)為本次得到的數(shù)據(jù)不可信,從而放棄本次讀到的數(shù)據(jù)或者導(dǎo)向安全側(cè)。
[0041]本發(fā)明并不限于上文討論的實(shí)施方式。以上對【具體實(shí)施方式】的描述旨在于為了描述和說明本發(fā)明涉及的技術(shù)方案。基于本發(fā)明啟示的顯而易見的變換或替代也應(yīng)當(dāng)被認(rèn)為落入本發(fā)明的保護(hù)范圍。以上的【具體實(shí)施方式】用來揭示本發(fā)明的最佳實(shí)施方法,以使得本領(lǐng)域的普通技術(shù)人員能夠應(yīng)用本發(fā)明的多種實(shí)施方式以及多種替代方式來達(dá)到本發(fā)明的目的。
【權(quán)利要求】
1.一種DSP與CPLD之間安全并行總線的處理方法;其特征在于,包括:對地址分配部分(1),數(shù)據(jù)總線部分(2)和通訊安全回復(fù)機(jī)制(3)。
2.如權(quán)利要求1所述的DSP與CPLD之間安全并行總線的處理方法,其特征在于:數(shù)字信號處理器DSP與復(fù)雜可編程邏輯器件CPLD之間地址及數(shù)據(jù)都為編碼信息,且數(shù)字信號處理器DSP在執(zhí)行完寫操作時(shí)必須再執(zhí)行一遍對復(fù)雜可編程邏輯器件CPLD特定狀態(tài)寄存器LSR的讀寫,如果讀出的LSR值不等于狀態(tài)編碼I,數(shù)字信號處理器DSP將認(rèn)為寫操作失敗,而數(shù)字信號處理器DSP在執(zhí)行讀操作時(shí)必須執(zhí)行對復(fù)雜可編程邏輯器件CPLD數(shù)據(jù)的校驗(yàn)以判斷數(shù)據(jù)正確性。
3.根據(jù)權(quán)利要求2所述的DSP與CPLD之間安全并行總線的處理方法,其特征在于:在數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD寫數(shù)據(jù)時(shí),復(fù)雜可編程邏輯器件CPLD將首先記錄地址和數(shù)據(jù)至LAR和LDR并校核從數(shù)字信號處理器DSP端來的地址,如果出錯(cuò),則記錄狀態(tài)編碼I至LSR,否則校核數(shù)字信號處理器DSP端來的地址,如果出錯(cuò),則記錄狀態(tài)編碼2至LSR,否則記錄狀態(tài)編碼3至LSR并且執(zhí)行相關(guān)操作。
4.根據(jù)權(quán)利要求3所述的DSP與CPLD之間安全并行總線的處理方法,其特征在于:在數(shù)字信號處理器DSP向復(fù)雜可編程邏輯器件CPLD讀數(shù)據(jù)時(shí),復(fù)雜可編程邏輯器件CPLD將首先校核從數(shù)字信號處理器DSP端來的地址,如果出錯(cuò),則輸出錯(cuò)誤編碼I至數(shù)據(jù)總線,否則發(fā)送正常功能值。
【文檔編號】G06F11/00GK103885843SQ201310064802
【公開日】2014年6月25日 申請日期:2013年3月1日 優(yōu)先權(quán)日:2013年3月1日
【發(fā)明者】劉月華, 俞泓, 王軍偉 申請人:上海富欣智能交通控制有限公司