引 言
為了實(shí)現(xiàn)網(wǎng)絡(luò)信息處理,嵌入式系統(tǒng)中必須具有強(qiáng)大的網(wǎng)絡(luò)連接功能。嵌入式系統(tǒng)的網(wǎng)絡(luò)連接功能不僅需要傳輸信息,同時(shí)還必須具有相應(yīng)的信息識(shí)別能力,以提高系統(tǒng)的網(wǎng)絡(luò)安全性。
近年來在嵌入式系統(tǒng)和SOC(片上系統(tǒng))技術(shù)發(fā)展的推動(dòng)下,嵌入IP協(xié)議的微處理器或單片機(jī)系統(tǒng)已經(jīng)出現(xiàn)[3],為嵌入式網(wǎng)絡(luò)技術(shù)的應(yīng)用奠定了基礎(chǔ)。但對于工業(yè)設(shè)備來說,特別是對于工業(yè)生產(chǎn)中使用的儀器儀表,采用軟件嵌入IP協(xié)議存在無法并行處理和成本過高的缺點(diǎn)。因此,采用硬件實(shí)現(xiàn)IP協(xié)議具有重要的意義。
IP硬件電路設(shè)計(jì)有嵌入處理器和ASIC兩種方法。使用嵌入處理器的方法設(shè)計(jì)IP協(xié)議時(shí),需要選擇相應(yīng)的處理器和附加電路,并根據(jù)所嵌入的處理器編制相應(yīng)軟件實(shí)現(xiàn)IP協(xié)議。這種方法可以采用已有的IP協(xié)議軟件,軟件實(shí)現(xiàn)比較方便。使用ASIC技術(shù)設(shè)計(jì)IP協(xié)議屬于硬件實(shí)現(xiàn)IP方法,IP協(xié)議的執(zhí)行全部為硬件執(zhí)行。這種實(shí)現(xiàn)方法具有的優(yōu)點(diǎn)就是IP協(xié)議的執(zhí)行不受軟件干擾,具有一定的IP協(xié)議層抗干擾能力。ASIC實(shí)現(xiàn)IP協(xié)議實(shí)現(xiàn)的是一個(gè)專用數(shù)字硬件電路,只需要通過相應(yīng)的控制信號就可以實(shí)現(xiàn)IP協(xié)議的功能,具有比較高的性能價(jià)格比。
針對工業(yè)設(shè)備對IP協(xié)議的需要,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)能完成IP協(xié)議功能的ASIC器件。對于工業(yè)控制設(shè)備來說,這種器件就是一個(gè)實(shí)現(xiàn)IP功能的專用器件,只要把要發(fā)送的數(shù)據(jù)傳送給該器件,就可以實(shí)現(xiàn)通信過程與控制系統(tǒng)并行操作。任何數(shù)字化的工業(yè)設(shè)備,都可以使用這個(gè)IP協(xié)議器件直接連接到基于IP的網(wǎng)絡(luò)。
一、 協(xié)議分析與IP電路結(jié)構(gòu)設(shè)計(jì)
IP協(xié)議的功能,是對來自上層協(xié)議的數(shù)據(jù)進(jìn)行打包和解包處理,通過數(shù)據(jù)報(bào)在一個(gè)個(gè)IP協(xié)議模塊間傳送,直到數(shù)據(jù)報(bào)到達(dá)目的模塊[2]?;ヂ?lián)網(wǎng)網(wǎng)絡(luò)中每個(gè)主機(jī)和網(wǎng)關(guān)設(shè)備上都有IP模塊,數(shù)據(jù)報(bào)在一個(gè)個(gè)模塊間通過路由處理網(wǎng)絡(luò)地址傳送到目的地址。IPv4的數(shù)據(jù)報(bào)報(bào)頭格式如圖1所示。IP在提供網(wǎng)絡(luò)層服務(wù)時(shí),采用了統(tǒng)一的報(bào)頭,以使處于各子網(wǎng)中的IP都能根據(jù)報(bào)頭對數(shù)據(jù)作出相應(yīng)的處理。
版本號報(bào)頭長度服務(wù)類型總長
標(biāo)識(shí) DFMF
生命權(quán)協(xié)議報(bào)頭校驗(yàn)和
源地址
目的地址
選項(xiàng)(不定)
圖 1 IP協(xié)議報(bào)頭格式
IP中使用以下4個(gè)關(guān)鍵技術(shù)實(shí)現(xiàn)數(shù)據(jù)報(bào)傳輸:
?。?)服務(wù)類型(ToS)。ToS是一個(gè)參數(shù)集,代表Internet能夠提供的服務(wù),用于指定用戶所希望得到的服務(wù)質(zhì)量。服務(wù)類型由網(wǎng)關(guān)使用,可用于特定的網(wǎng)絡(luò)或是用于下一個(gè)要經(jīng)過的網(wǎng)絡(luò),也可用于下一個(gè)要對數(shù)據(jù)報(bào)進(jìn)行路由選擇的網(wǎng)關(guān)上選擇實(shí)際傳送的參數(shù)。
?。?)生存時(shí)間(TTL)。生存時(shí)間是用戶設(shè)置的數(shù)據(jù)報(bào)在網(wǎng)絡(luò)傳輸過程中的保存時(shí)間。生存時(shí)間由發(fā)送者設(shè)置,由所經(jīng)過的路由處理。如果在到達(dá)目的節(jié)點(diǎn)之前生存時(shí)間已經(jīng)為零,則IP就會(huì)自動(dòng)拋棄此數(shù)據(jù)報(bào)。
?。?)選項(xiàng)(optiONs)。選項(xiàng)包括時(shí)間戳、安全和特殊路由要求等。對于控制函數(shù)來說選項(xiàng)是重要的,但對于通常的通信來說一般沒有必要。
?。?)報(bào)頭校驗(yàn)碼(checksum)。設(shè)置報(bào)頭校驗(yàn)碼的目的,是保證數(shù)據(jù)的正確傳輸。如果校驗(yàn)出錯(cuò),IP將拋棄整個(gè)數(shù)據(jù)報(bào)。必須注意,與一般工業(yè)控制系統(tǒng)使用的簡單通信協(xié)議不同,IP協(xié)議發(fā)現(xiàn)校驗(yàn)碼出錯(cuò)后,并不立即通知發(fā)送端,而是放棄剛剛接收到的一段報(bào)文,把糾正報(bào)文出錯(cuò)的任務(wù)留給TCP協(xié)議完成。這種方式不僅提高了通信效率,還可以簡化傳輸質(zhì)量,保證程序。
在設(shè)計(jì)IP協(xié)議ASIC硬件電路中,有幾個(gè)問題需要考慮:
?。?)應(yīng)用系統(tǒng)的核心處理器,通過控制信號實(shí)現(xiàn)對IP協(xié)議器件的使用操作,因此,必須考慮如何通過硬件電路實(shí)現(xiàn)核心處理器與IP硬件電路之間的數(shù)據(jù)交換。
?。?)如果IP硬件應(yīng)用于終端設(shè)備(例如工業(yè)控制系統(tǒng)的控制設(shè)備)而不是作為交換節(jié)點(diǎn),IP協(xié)議中有關(guān)路由選擇處理的部分可以省略。
(3)為保證IP協(xié)議的健壯性,電路設(shè)計(jì)中必須十分注意電路并行協(xié)議操作中不同電路部分的延時(shí)不均勻問題。所有功能電路的延時(shí)不超過允許范圍,必要時(shí)要犧牲速度,保證協(xié)議操作的正確性。
?。?)如果每次傳輸?shù)臄?shù)據(jù)量不大(例如作為工業(yè)設(shè)備組成的工業(yè)網(wǎng)絡(luò)控制系統(tǒng)),可以不考慮IP協(xié)議中的報(bào)文分片處理。應(yīng)用系統(tǒng)只要使每次發(fā)送的數(shù)據(jù)長度符合一個(gè)IP數(shù)據(jù)報(bào)的長度要求,就能正確無誤地利用IP網(wǎng)絡(luò)傳輸數(shù)據(jù)。這樣不僅可以簡化硬件電路,還能節(jié)省緩沖存儲(chǔ)器的容量。
根據(jù)以上討論,IP專用電路的設(shè)計(jì),實(shí)際上就是通過計(jì)數(shù)器、寄存器、RAM來實(shí)現(xiàn)外部握手和內(nèi)部流水線處理電路。由于接收與發(fā)送互相獨(dú)立,電路設(shè)計(jì)中可以把接收和發(fā)送分為兩個(gè)各自獨(dú)立的部分。由此,IP協(xié)議ASIC專用電路結(jié)構(gòu)框圖如圖2所示。
二、 IP協(xié)議ASIC電路握手操作
IP協(xié)議器件中,發(fā)送電路的任務(wù)是對要發(fā)送的數(shù)據(jù)進(jìn)行加IP報(bào)頭的處理,再把打好包的IP數(shù)據(jù)報(bào)發(fā)送給MAC層。接收電路的任務(wù)是對接收到的IP報(bào)進(jìn)行報(bào)頭校驗(yàn)和拆報(bào)處理,最后把數(shù)據(jù)傳輸給微處理器系統(tǒng)。
設(shè)計(jì)IP協(xié)議硬件電路,一個(gè)重要的問題就是數(shù)據(jù)報(bào)的接收和發(fā)送機(jī)制。使用硬件實(shí)現(xiàn)IP協(xié)議的關(guān)鍵有兩個(gè):一個(gè)是流水線操作,另一個(gè)是數(shù)據(jù)存儲(chǔ)方式。
流水線操作是指IP協(xié)議的實(shí)現(xiàn)操作采用流水線方式,各操作步驟實(shí)行并行處理。作為網(wǎng)絡(luò)層協(xié)議,IP協(xié)議操作的速度取決于兩個(gè)因素:一個(gè)因素是數(shù)據(jù)報(bào)存儲(chǔ)方式,另一個(gè)因素是MAC層的收發(fā)速度。從IP層所處的位置看,由于IP網(wǎng)絡(luò)的接入網(wǎng)以全雙工方式工作,作為硬件器件的工作時(shí)鐘必須以發(fā)送和接收時(shí)鐘為準(zhǔn)。本設(shè)計(jì)中,以應(yīng)用系統(tǒng)調(diào)用IP協(xié)議信號作為發(fā)送電路操作允許信號,MAC層調(diào)用IP協(xié)議信號作為發(fā)送和接收觸發(fā)同步信號,采用同步觸發(fā)時(shí)鐘并行控制的技術(shù),實(shí)現(xiàn)了IP協(xié)議操作步驟的流水線并行處理。
數(shù)據(jù)報(bào)中數(shù)據(jù)的存儲(chǔ)可以有兩種方式:
(1) IP協(xié)議專用RAM方式。采用這種方式時(shí),IP協(xié)議需要有專用的接收和發(fā)送RAM。在發(fā)送操作時(shí),應(yīng)用系統(tǒng)先將要發(fā)送的數(shù)據(jù)寫入IP專用RAM中,再調(diào)用IP協(xié)議進(jìn)行發(fā)送處理。在接收操作時(shí),MAC層將接收到的IP協(xié)議數(shù)據(jù)報(bào)寫入IP專用RAM中,再由IP協(xié)議進(jìn)行處理。
(2) 系統(tǒng)RAM方式。這種方式不需要有IP協(xié)議專用RAM,IP協(xié)議硬件通過握手線使用應(yīng)用系統(tǒng)或MAC層中的RAM。
對比兩種方式:第一種方式可以把RAM設(shè)計(jì)在IP協(xié)議電路內(nèi)部,不需要占用應(yīng)用系統(tǒng)和MAC層資源,但需要提供系統(tǒng)對IP協(xié)議電路進(jìn)行數(shù)據(jù)傳送的接口電路;第二種方法不需要采用專用RAM,因此IP協(xié)議電路比較簡單,但需要在IP協(xié)議電路與應(yīng)用系統(tǒng)和MAC層之間設(shè)計(jì)出合適的接口電路,做到既要滿足IP流水線操作的要求,又不會(huì)增加應(yīng)用系統(tǒng)資源負(fù)擔(dān)。
本文設(shè)計(jì)的IP協(xié)議硬件中,采取了上述兩種方式綜合的方法:在IP內(nèi)設(shè)置相應(yīng)數(shù)量RAM模塊,這個(gè)RAM模塊不僅是IP協(xié)議的數(shù)據(jù)RAM,同時(shí)也是應(yīng)用系統(tǒng)和MAC層的通信緩沖區(qū)。通過握手線與微處理器和MAC層器件連接,握手線中的時(shí)鐘信號控制IP協(xié)議器件中發(fā)送或接收流水線的工作節(jié)拍,使整個(gè)協(xié)議處理實(shí)現(xiàn)了并行操作。電路模塊如圖3所示。
圖 3 RAM控制邏輯
三、 流水線方式對電路延遲均勻要求的分析
硬件實(shí)現(xiàn)IP協(xié)議的特點(diǎn)是協(xié)議操作并行,所有協(xié)議操作的基本內(nèi)容完全按照協(xié)議的執(zhí)行內(nèi)容并行完成。例如發(fā)送數(shù)據(jù)過程中數(shù)據(jù)的操作如下:
讀入1字節(jié)-數(shù)據(jù)處理-發(fā)送1字節(jié)
讀入1字節(jié)-數(shù)據(jù)處理-發(fā)送1字節(jié)
讀入1字節(jié)-數(shù)據(jù)處理-發(fā)送1字節(jié)
……
為實(shí)現(xiàn)上述操作,除了需要使用外部觸發(fā)信號作為統(tǒng)一時(shí)鐘外,各部分電路延遲的誤差還要受到相應(yīng)的限制。
如圖 4所示,IP協(xié)議硬件電路采用的是同步時(shí)序電路,以便使各電路能協(xié)調(diào)并行工作。
圖 4 IP協(xié)議流水線硬件結(jié)構(gòu)示意圖
IP協(xié)議的操作,就是對要傳送的數(shù)據(jù)報(bào)進(jìn)行相應(yīng)處理,因此,電路是否正常由數(shù)據(jù)的穩(wěn)定性決定。如果電路能在規(guī)定的時(shí)間內(nèi)進(jìn)入穩(wěn)定狀態(tài),則數(shù)據(jù)在處理過程中就不會(huì)出現(xiàn)問題;否則,數(shù)據(jù)就會(huì)發(fā)生不確定性的變化,這種情況就叫作硬件電路的非正常操作結(jié)果。出現(xiàn)非正常操作結(jié)果的IP協(xié)議器件是不穩(wěn)定的。
影響IP協(xié)議器件穩(wěn)定性的因素是各級電路操作時(shí)間長度和觸發(fā)時(shí)鐘周期。從圖4中可以看出,各級電路的操作時(shí)間長度必須小于觸發(fā)信號周期,也就是說,必須在一個(gè)觸發(fā)周期內(nèi)完成本級電路的所有操作。根據(jù)有限狀態(tài)機(jī)和時(shí)序邏輯電路理論可知,各級處理電路都必須是同步時(shí)序邏輯電路。另外,各級電路的操作時(shí)間長度取決于電路的級聯(lián)層數(shù)和每級的時(shí)間延遲。由此可知,要保證IP協(xié)議器件工作穩(wěn)定,必須同時(shí)滿足如下2個(gè)條件:
?。?) 各級模塊電路處理時(shí)間必須小于最小觸發(fā)周期;
?。?) 各級模塊電路內(nèi)部延遲能滿足處理時(shí)間要求。
作為硬件電路,其處理速度實(shí)際上就是數(shù)據(jù)在邏輯電路中的傳輸速度,因此,可以通過計(jì)算數(shù)據(jù)傳輸經(jīng)過邏輯門的最大時(shí)間延遲,確定每級邏輯模塊電路的工作時(shí)間。
在IP協(xié)議流水線操作中,設(shè)外部觸發(fā)時(shí)鐘周期為TCLK,各模塊電路的傳輸延遲時(shí)間為ti,采用MOS器件的ASIC電路邊沿動(dòng)作時(shí)間均為tp,各模塊內(nèi)部傳輸經(jīng)過N級電路,其中每一級的延遲為Δti,則每個(gè)模塊電路的總延遲為
ti=NΔti
為保證器件工作穩(wěn)定,需要有
TCLK》ti=NΔti
結(jié)束語
嵌入IP協(xié)議的微處理器或單片機(jī)系統(tǒng)是嵌入式網(wǎng)絡(luò)技術(shù)應(yīng)用的基本技術(shù)[2],但工業(yè)設(shè)備采用軟件嵌入IP協(xié)議存在無法并行處理或成本過高的缺點(diǎn)。本文針對工業(yè)設(shè)備對IP協(xié)議需要所設(shè)計(jì)的IP協(xié)議專用器件克服了這些不足,為工業(yè)設(shè)備提供了實(shí)用的、具有較高性能價(jià)格比的網(wǎng)絡(luò)技術(shù)。任何數(shù)字化工業(yè)設(shè)備,都可以使用這個(gè)IP協(xié)議器件直接連接到基于IP的網(wǎng)絡(luò)。
硬件實(shí)現(xiàn)的IP協(xié)議,其并行工作的數(shù)字電路系統(tǒng)必須保證數(shù)據(jù)處理的穩(wěn)定性。根據(jù)有限狀態(tài)機(jī)和時(shí)序邏輯電路理論,實(shí)現(xiàn)并行工作的各級處理電路都必須是同步時(shí)序邏輯電路。
使用ASCI技術(shù)設(shè)計(jì)IP協(xié)議屬于硬件,是并行操作實(shí)現(xiàn)IP協(xié)議技術(shù),不僅IP協(xié)議的執(zhí)行不受軟件和系統(tǒng)中斷干擾,還具有一定的IP協(xié)議層抗干擾能力。由于ASIC實(shí)現(xiàn)的IP協(xié)議是一個(gè)專用數(shù)字硬件電路,只需要通過相應(yīng)的控制信號就可以實(shí)現(xiàn)IP協(xié)議的功能,具有比較高的性能價(jià)格比。
評論
查看更多