午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法

文檔序號:10534507閱讀:604來源:國知局
一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法
【專利摘要】一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,在WSN節(jié)點硬件系統(tǒng)上增加一個代理機(jī)和若干硬件加速器,代理機(jī)設(shè)置于WSN節(jié)點的處理器外設(shè)總線上,向上對WSN節(jié)點的處理器負(fù)責(zé),并作為所有新增硬件加速器的總代理,向下管理所有新增硬件加速器,代理機(jī)與所有新增硬件加速器構(gòu)成一個子系統(tǒng),新的應(yīng)用程序既可使用原有硬件資源接口也可使用新增的硬件加速器資源接口;本發(fā)明把對擴(kuò)展加速器的訪問虛擬成對外設(shè)地址的讀寫,實現(xiàn)了對原有指令集的兼容,保證了新添加硬件的組件對原有標(biāo)準(zhǔn)組件的完整兼容性;封裝后的擴(kuò)展加速器組件,為用戶上層調(diào)用擴(kuò)展資源提供了便利,減輕了用戶在WSN節(jié)點平臺上增加新模塊和軟件移植的難度和工作量。
【專利說明】
一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法
技術(shù)領(lǐng)域
[0001 ] 本發(fā)明屬于無線傳感器網(wǎng)絡(luò)(WSN,wireless sensor network)節(jié)點的硬件結(jié)構(gòu)實 現(xiàn)技術(shù)領(lǐng)域,特別涉及一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法。
【背景技術(shù)】
[0002] 在能量資源稀缺的WSN節(jié)點中,如何提高能量的使用效率成為關(guān)鍵難點;此外,WSN 節(jié)點中的硬件資源有限,目前的WSN節(jié)點硬件主要是MSP430和Atmega等輕量級處理器或微 控制器的單核。但這些處理器的處理能力相對較弱,軟件實現(xiàn)功能效率較低,如何滿足那些 有處理能力要求的應(yīng)用(如多媒體無線傳感器網(wǎng)絡(luò))也是研究的一大問題。上述問題的重要 解決途徑就是采用專用的硬件加速器執(zhí)行關(guān)鍵的常規(guī)運算。在通用處理器之外,新增加速 器一方面可以提高硬件的專用化程度,有效提高能量利用率,另一方面,對于多媒體傳感器 網(wǎng)絡(luò)節(jié)點、高安全性傳感網(wǎng)絡(luò)節(jié)點等有較高要求的應(yīng)用,采用專用硬件加速器可以在同樣 能耗下提高運算速度。為了滿足高性能、低功耗應(yīng)用的需求,研究者提出了多種不同于傳統(tǒng) 的單處理器節(jié)點架構(gòu)的基于加速器的WSN節(jié)點硬件結(jié)構(gòu),例如,增加數(shù)據(jù)壓縮模塊通過減小 發(fā)送的數(shù)據(jù)量來減小能量消耗;增加專用數(shù)據(jù)處理模塊減小硬件能量消耗等。這些增加加 速器的方式在增加WSN節(jié)點的功耗使用效率、提高數(shù)據(jù)處理速度方面都給出了有效的解決 方案。但是,在沒有通用SoC總線的MSP430和Atmega這樣的硬件平臺上新增加速器只能通過 效率很低的SPI、1 2C或GP10等片間接口,這違背了增加了硬件加速器以獲得較高效率的初 衷。
[0003] 無線傳感器網(wǎng)絡(luò)節(jié)點軟件主要完成節(jié)點資源的管理以及節(jié)點之間的相互通信。無 線傳感器網(wǎng)絡(luò)節(jié)點屬于嵌入式系統(tǒng)的一種,在嵌入式系統(tǒng)的軟件設(shè)計中,應(yīng)用開發(fā)者如果 直接對硬件進(jìn)行編程操作,不采用對底層硬件的統(tǒng)一驅(qū)動,則效率低下,對研發(fā)人員的能力 要求也較高。嵌入式開發(fā)的操作系統(tǒng)可以對底層硬件進(jìn)行抽象化,與硬件的相關(guān)問題都由 驅(qū)動程序負(fù)責(zé)處理,這樣大大減少了應(yīng)用開發(fā)者的開發(fā)難度,減少了開發(fā)時間,降低了成 本。因此,在WSN節(jié)點開發(fā)中,開發(fā)適當(dāng)?shù)牟僮飨到y(tǒng)顯得尤為重要。同其他嵌入式操作系統(tǒng)一 樣,WSN節(jié)點的操作系統(tǒng)也提供了物理設(shè)備的抽象和高協(xié)調(diào)性的通用接口為開發(fā)應(yīng)用提供 方便。WSN節(jié)點操作系統(tǒng)的獨特性在于,WSN節(jié)點的資源極端受限(處理器速度、存儲器大小、 內(nèi)存大小、通訊帶寬、資源數(shù)量以及電源等)、設(shè)備特殊且缺乏一致的抽象層次。因此,WSN節(jié) 點的操作系統(tǒng)的設(shè)計策略是從一個資源庫抽取一部分組成應(yīng)用,它致力于提供有限資源的 并發(fā),而不是提供接口或形式。
[0004] 現(xiàn)有WSN節(jié)點的操作系統(tǒng)普遍面向傳統(tǒng)的單個微控制器作為處理器的節(jié)點(也是 當(dāng)下大多數(shù)WSN節(jié)點的處理器),在這樣的硬件平臺上新增加速器則需要開發(fā)相應(yīng)的驅(qū)動程 序,該工作同樣要求系統(tǒng)開發(fā)者熟悉掌握底層硬件的結(jié)構(gòu)。此外,不同應(yīng)用的加速器功能可 能不同,這種差異還要求重新進(jìn)行硬件和軟件設(shè)計。
[0005] 總之,在兼容現(xiàn)有平臺和操作系統(tǒng)的基礎(chǔ)上便捷、高效地擴(kuò)展加速器,對提高WSN 節(jié)點的能效、豐富節(jié)點功能具有重要意義,但傳統(tǒng)的單處理器軟硬件系統(tǒng)不能滿足高性能、 低功耗WSN節(jié)點應(yīng)用的需要,新的節(jié)點平臺的開發(fā)除了硬件設(shè)計,還需要提供適用的操作系 統(tǒng)。當(dāng)前對新節(jié)點平臺的改進(jìn)的途徑有以下三種:
[0006] 第一種方式是軟硬件全新設(shè)計,即設(shè)計新的硬件平臺和適用的新的工具鏈及操作 系統(tǒng),其優(yōu)點是系統(tǒng)效率最高,缺點是需要較大的投入且無法利用已有的應(yīng)用程序資源。
[0007] 第二種方式是僅重新設(shè)計硬件,采用現(xiàn)有的支持S0C平臺的嵌入式操作系統(tǒng),這種 方式省去了操作系統(tǒng)研發(fā)的成本,但是通用嵌入式系統(tǒng)在WSN節(jié)點應(yīng)用中的效果不如專門 面向WSN節(jié)點開發(fā)的操作系統(tǒng),這點對于在開銷方面有很高要求的WSN節(jié)點來說是個較大的 問題。
[0008] 第三種方式是操作系統(tǒng)移植,即對現(xiàn)有的WSN節(jié)點操作系統(tǒng)進(jìn)行修改,然后移植到 其它的硬件平臺(如ARM等成熟的嵌入式系統(tǒng)平臺)上來。但是,為每個新的硬件平臺開發(fā)一 套操作系統(tǒng)的底層驅(qū)動不僅難度較大、耗費較多時間,而且已有的某些上層應(yīng)用程序也可 能由于硬件的變化存在兼容性的問題。
[0009] 針對WSN節(jié)點的以上問題,設(shè)計能夠在現(xiàn)有資源的基礎(chǔ)上方便添加新硬件模塊的 結(jié)構(gòu)顯得尤為重要。

【發(fā)明內(nèi)容】

[0010] 為了克服上述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種嵌入式系統(tǒng)的兼容式 加速器擴(kuò)展方法,針對當(dāng)前成熟WSN節(jié)點軟硬件系統(tǒng),在保持對原有處理器軟件兼容的前提 下進(jìn)行硬件和軟件的同時擴(kuò)展,所述原有處理器是一個僅有芯片間通信接口的單片獨立工 作的中央處理器或微控制器,有一個內(nèi)部的外設(shè)總線,但沒有片上系統(tǒng)總線用于掛接擴(kuò)展 模塊,擴(kuò)展后的新硬件系統(tǒng)是一個集成系統(tǒng)芯片,芯片中集成了原處理器的軟核,并在芯片 中增加硬件加速器和硬件加速器的代理,在該代理的一側(cè)使用通用的S0C總線接口以方便 增加新的硬件加速器,在軟件層增加針對新增代理的驅(qū)動模塊,處理器對硬件加速器的控 制通過向代理發(fā)送命令和數(shù)據(jù)完成,使得在兼容現(xiàn)有硬件平臺及應(yīng)用的基礎(chǔ)上大大簡化了 添加硬件加速器的工作;本方案下,所有的新增硬件加速器可以通過標(biāo)準(zhǔn)的總線接口添加 到現(xiàn)有WSN節(jié)點上,應(yīng)用開發(fā)者調(diào)用新增硬件的對應(yīng)軟件接口完成應(yīng)用開發(fā),指明了 WSN節(jié) 點系統(tǒng)開發(fā)者和應(yīng)用開發(fā)者需要提供的接口以及可以使用的接口資源。
[0011] 為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
[0012] 一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,在原WSN節(jié)點處理器硬件系統(tǒng)上增加 一個代理機(jī)和若干硬件加速器,所述代理機(jī)設(shè)置于WSN節(jié)點的處理器外設(shè)總線上,向上對 WSN節(jié)點的處理器負(fù)責(zé),并作為所有新增硬件加速器的總代理,向下管理所有新增硬件加速 器,所述代理機(jī)與所有新增硬件加速器構(gòu)成一個子系統(tǒng),該子系統(tǒng)相當(dāng)于WSN節(jié)點處理器的 一個外設(shè)。該子系統(tǒng)使用所述處理器中的一個未使用的地址,在該子系統(tǒng)中每個新增硬件 加速器及內(nèi)部可訪問寄存器都有分配的唯一的局部地址,每個新增硬件加速器至少對應(yīng)一 個地址,用做訪問索引,對加速器的訪問是向子系統(tǒng)發(fā)送包含子系統(tǒng)地址的命令形式進(jìn)行 的。這樣大大擴(kuò)展了核心處理器的外設(shè)地址,方便增加更多的硬件加速模塊。
[0013] 在WSN節(jié)點軟件系統(tǒng)上,相應(yīng)設(shè)置三層:
[0014] 第一層是針對所述代理機(jī)的新增底層驅(qū)動,和硬件接觸最緊密;
[0015] 第二層是提供代理機(jī)與新增硬件加速器總線傳輸方式對應(yīng)接口的新增硬件抽象 層;
[0016] 第三層是根據(jù)所選硬件加速器的特性提供必要的讀寫數(shù)據(jù)接口的用戶接口層。
[0017] 新的應(yīng)用程序既可使用原有硬件資源接口也可使用新增的硬件加速器資源接口。
[0018] 得益于WSN節(jié)點操作系統(tǒng)抽取資源庫的部分組成應(yīng)用的設(shè)計策略,所述新增底層 驅(qū)動不影響原有的操作系統(tǒng)資源庫的任何組件,且屏蔽了新增硬件加速器與處理器之間的 硬件接口的細(xì)節(jié)。
[0019] 所述代理機(jī)與WSN節(jié)點的處理器之間通過處理器內(nèi)部的外設(shè)總線進(jìn)行通信,所述 代理機(jī)與新增硬件加速器之間通過標(biāo)準(zhǔn)的主-從型S0C總線進(jìn)行通信,代理機(jī)充當(dāng)主機(jī),硬 件加速器是從機(jī),這樣簡化了 WSN節(jié)點開發(fā)者增加新的硬件加速器的工作。
[0020] 由于處理器內(nèi)部總線數(shù)據(jù)帶寬有限,一次交易要經(jīng)過多次的處理器總線傳輸完 成,為指明需要控制的硬件加速器以及操作的模式,所述代理機(jī)與WSN節(jié)點的處理器之間, 一次交易中第一組數(shù)據(jù)約定為操作"命令",之后才是需要交換的數(shù)據(jù),處理器通過向代理 機(jī)發(fā)送操作"命令"和讀\寫數(shù)據(jù)實現(xiàn)對新增硬件加速器的控制和數(shù)據(jù)交換,所述操作"命 令"是一種預(yù)先定義好的字段,包含操作類型、傳輸?shù)刂贰鬏斈J胶蛡鬏旈L度這四種信息。
[0021] 所述子系統(tǒng)在處理器上的復(fù)位方式執(zhí)行時實現(xiàn)整體復(fù)位;而單獨對代理機(jī)的復(fù)位 封裝于軟件層的接口中,對應(yīng)用層不可見;對新增硬件加速器的復(fù)位通過向代理機(jī)發(fā)送命 令執(zhí)行,由應(yīng)用層軟件控制,所述處理器上的復(fù)位方式包括上電復(fù)位和看門狗復(fù)位。所述處 理器向代理機(jī)發(fā)送\讀取數(shù)據(jù)是按照指令周期進(jìn)行傳輸?shù)?,代理機(jī)和新增硬件加速器之間 通信是標(biāo)準(zhǔn)S0C總線上按照時鐘周期的模式進(jìn)行傳輸?shù)模谶@種方式下連續(xù)采樣數(shù)據(jù)將會 導(dǎo)致錯誤的發(fā)生,因此可通過在讀和寫操作過程中分別使用寫FIFO和讀FIFO暫存數(shù)據(jù),以 解決代理兩側(cè)數(shù)據(jù)不同步的問題。
[0022] 當(dāng)使用新增的硬件加速器資源接口時,硬件系統(tǒng)進(jìn)行一次數(shù)據(jù)傳輸?shù)膱?zhí)行步驟包 括:
[0023] 1)、代理機(jī)首先解析操作"命令"并決定接下來進(jìn)行復(fù)位、數(shù)據(jù)讀/寫或其他不同 SoC總線特有的操作,決定讀/寫的地址以及讀寫的數(shù)據(jù)長度;
[0024] 2)、如果是復(fù)位操作,則代理機(jī)按照所述的子系統(tǒng)中的SoC總線協(xié)議對硬件加速器 進(jìn)行復(fù)位;如果是讀/寫操作,處理器通過外設(shè)總線對代理機(jī)地址進(jìn)行讀/寫,代理機(jī)再按照 所述子系統(tǒng)中的SoC總線協(xié)議對應(yīng)的讀/寫模式訪問操作"命令"中地址指向的硬件加速器 寄存器,同時,代理機(jī)會對讀/寫的次數(shù)進(jìn)行計數(shù),當(dāng)數(shù)據(jù)讀/寫的數(shù)目和命令中要求的傳輸 長度一致時,表示完成了一次數(shù)據(jù)讀/寫的交易;
[0025] 3)、一次交易結(jié)束,代理機(jī)掛起,等待新的操作"命令"開始下一次交易。
[0026]操作系統(tǒng)底層添加代理機(jī)的驅(qū)動接口函數(shù),代理機(jī)的驅(qū)動接口函數(shù)包括對代理進(jìn) 行復(fù)位的功能函數(shù),對應(yīng)于S0C總線的標(biāo)準(zhǔn)定義的每種訪問交易(包括從設(shè)備復(fù)位、各類讀/ 寫操作等)有一個對應(yīng)的功能函數(shù),每個功能函數(shù)根據(jù)權(quán)利要求8執(zhí)行其中所述的1)至3)的 操作過程;操作系統(tǒng)的硬件抽象層添加每個加速器的組件,每個組件向上層提供加速器的 各種基本操作的接口,向下調(diào)用代理機(jī)的驅(qū)動接口函數(shù)實現(xiàn)加速器的功能且不改動原操作 系統(tǒng)中的已有硬件抽象層組件;應(yīng)用程序調(diào)用硬件抽象層的加速器組件接口實現(xiàn)不同應(yīng) 用。
[0027]本發(fā)明軟硬件上的這種設(shè)計不需要對處理器進(jìn)行指令擴(kuò)展就能夠?qū)崿F(xiàn)對擴(kuò)展資 源的訪問,從而確保了對原有程序的支持,最小化硬件部分改動,同時符合標(biāo)準(zhǔn)的加速器都 可以掛接。這種采用內(nèi)部總線的擴(kuò)展方法相對板間擴(kuò)展接口的設(shè)計具有更高的傳輸效率, 同時也保持了對原有處理器體系結(jié)構(gòu)的兼容。在軟件上,應(yīng)用開發(fā)者使用新增API (Application Programming Interface)完成開發(fā)。
[0028]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
[0029] (1)不需要改寫原有的操作系統(tǒng)底層即可增添新的底層應(yīng)用,開發(fā)工作量??;
[0030] (2)保持了對原有操作系統(tǒng)和節(jié)點應(yīng)用程序的兼容,可以繼續(xù)利用成熟WSN節(jié)點操 作系統(tǒng)的以及傳統(tǒng)節(jié)點現(xiàn)有的大量應(yīng)用程序資源;
[0031] (3)提供標(biāo)準(zhǔn)的軟硬件擴(kuò)展接口,簡化更換加速器的二次開發(fā)過程,具有良好的擴(kuò) 展性。
【附圖說明】
[0032] 圖1是本發(fā)明軟硬件結(jié)構(gòu)系統(tǒng)框圖。
[0033] 圖2是本發(fā)明硬件部分的硬件結(jié)構(gòu)圖。
[0034]圖3是本發(fā)明代理部分的內(nèi)部的結(jié)構(gòu)圖。
[0035]圖4是open 430通過代理向硬件加速器發(fā)送數(shù)據(jù)的時序圖。
[0036]圖5是open 430通過代理從硬件加速器讀數(shù)據(jù)的時序圖。
[0037]圖6是代理內(nèi)部的狀態(tài)跳轉(zhuǎn)示意圖。
[0038]圖7是增加代理和AES加密引擎后的WSN節(jié)點硬件結(jié)構(gòu)圖。
【具體實施方式】
[0039]下面結(jié)合附圖和實施例詳細(xì)說明本發(fā)明的實施方式。
[0040] 圖1是本發(fā)明的軟硬件系統(tǒng)框圖,右側(cè)虛框內(nèi)是新增的軟硬件部分,左側(cè)是當(dāng)前 WSN節(jié)點的軟硬件系統(tǒng)。軟件層程序包括三層:第一層新增底層驅(qū)動,是針對代理機(jī)部分的 驅(qū)動,和硬件接觸最緊密;第二層是新增硬件抽象層,提供所選S0C總線傳輸方式對應(yīng)的接 口;第三層用戶接口層,根據(jù)所選硬件加速器的特性提供必要的讀寫數(shù)據(jù)接口。新的應(yīng)用程 序既可使用原有硬件資源接口也可使用新增的硬件加速器資源接口。
[0041] 圖2是本發(fā)明下的WSN節(jié)點硬件結(jié)構(gòu)圖,圖上虛框內(nèi)是現(xiàn)有WSN節(jié)點使用的處理器 結(jié)構(gòu)?,F(xiàn)有的WSN節(jié)點還包括連接在通用端口上的其他模塊。新增部分是連接在外設(shè)總線上 的代理機(jī)和加速器模塊。在處理器的外設(shè)總線上增加一個新的外設(shè)作為所有新增硬件加速 器的總代理機(jī),也即代理機(jī),該代理機(jī)向上對WSN節(jié)點的核心處理器負(fù)責(zé);向下管理所有的 新增硬件加速器。代理機(jī)和新增硬件加速器之間組成一個子系統(tǒng),該子系統(tǒng)相當(dāng)于WSN節(jié)點 核心處理器的一個外設(shè)。
[0042]圖3是本發(fā)明中代理機(jī)的內(nèi)部硬件結(jié)構(gòu)圖。圖上的左側(cè)是來自于處理器外設(shè)總線 的信號,右側(cè)是連接新增硬件加速器的標(biāo)準(zhǔn)SoC總線信號。代理機(jī)內(nèi)部總計包含六個模塊分 別是控制器(狀態(tài)機(jī))、讀\寫模塊、讀\寫?正0和解析命令模塊。
[0043] 選擇當(dāng)前使用最廣泛的TelosB節(jié)點作為硬件實例進(jìn)行改造,以128-bits的AES加 密引擎作為硬件加速器,選擇Wishbone總線作為連接AES和代理機(jī)之間的S0C總線。對應(yīng)的 操作系統(tǒng)是在WSN節(jié)點上廣泛使用的TinyOS操作系統(tǒng)。
[0044] TelosB節(jié)點使用的是MSP430(F1611)系列單片機(jī),本發(fā)明所做的硬件改造是在 MSP430軟核(即寄存器傳輸級的設(shè)計代碼)基礎(chǔ)上進(jìn)行的,經(jīng)過修改后的處理器可以通過流 片加工成新的包含加速器子系統(tǒng)的新的S0C芯片,也可以下載到FPGA中工作。來自于MSP430 的信號有口61'_611、口61'_¥6、口61'_&(1(11'、口61'_(1;[11、口61'_(10111:,其中口61'_611和口61'_¥6信號是使能 信號,兩者配合完成MSP430外部模塊的使能以及讀\寫選擇;p er_addr是選通的外部地址信 號;per_dout是向外部模塊寫數(shù)據(jù)的信號;per_din是從外部讀取數(shù)據(jù)的信號。這些來自 MSP430信號對應(yīng)圖三的左側(cè)信號。
[0045]圖4和圖5分別是MSP430向硬件加速器寫信息和讀信息的時序圖。其中,We_b是寫 使能信號;Ack_b是應(yīng)答信號;Data_b上傳輸?shù)氖菙?shù)據(jù),這些都是Wishbone上的信號。在open 430向代理機(jī)寫數(shù)據(jù)的過程中,使用FIFO來暫存數(shù)據(jù)直到合適的時刻才能開啟向加速器端 寫入數(shù)據(jù)。代理機(jī)接收到讀命令后,Wishbone總線上開始連續(xù)傳輸N個數(shù)據(jù)到讀FIFO暫存并 等待open430逐個讀取,一旦讀FIFO中有數(shù)據(jù)即可允許open 430從代理機(jī)中讀取數(shù)據(jù)。
[0046] 代理機(jī)內(nèi)部控制器可以由一個有限狀態(tài)機(jī)實現(xiàn),也可以選擇其他控制方式。圖6是 對應(yīng)的是使用有限狀態(tài)機(jī)的狀態(tài)跳轉(zhuǎn)圖。Wishbone總線上有五種傳輸模式分別是:單個讀\ 寫、塊讀\寫、Rmw(READ-MODIY-WRITE)。在代理機(jī)的狀態(tài)機(jī)上需要有七個狀態(tài),各個狀態(tài)的 說明:
[0047] 狀態(tài) Idle
[0048]復(fù)位代理機(jī),時刻監(jiān)聽處理器的內(nèi)部總線。芯片上電后狀態(tài)機(jī)接受來自處理器的 上電復(fù)位信號自動復(fù)位到此狀態(tài),之后,處理器通過向代理機(jī)發(fā)出"初始化"命令觸發(fā)代理 機(jī)的復(fù)位。每次讀/寫操作結(jié)束后都進(jìn)入該狀態(tài)。
[0049]狀態(tài) Set
[0050]解析處理器發(fā)送的命令信息。決定接下來做何種操作,進(jìn)而跳轉(zhuǎn)到Pre_read和 Pre_write狀態(tài)。在Idle狀態(tài),一旦檢測到發(fā)送給代理機(jī)命令信息,則進(jìn)入set狀態(tài)。
[0051 ]狀態(tài) Rst
[0052]按照給出的地址,完成對硬件加速器的復(fù)位操作。在set狀態(tài)解析命令,如果是復(fù) 位命令,則進(jìn)入復(fù)位狀態(tài),復(fù)位完成后無條件進(jìn)入Idle狀態(tài)等待其他操作。
[0053]狀態(tài) Pre_write
[0054]該狀態(tài)已經(jīng)完成了向代理機(jī)的命令發(fā)送。并完成了解析,在寫FIFO中暫存MSP430 發(fā)送來的數(shù)據(jù)。當(dāng)處理器寫入FIFO中數(shù)據(jù)達(dá)到一定數(shù)目后進(jìn)入對硬件加速器寫入數(shù)據(jù)的狀 〇
[0055]狀態(tài) Pre_read
[0056]該狀態(tài)已經(jīng)完成了向代理機(jī)的命令發(fā)送。并完成了解析,讀取相對應(yīng)的加速器上 的數(shù)據(jù)到讀FIFO中。當(dāng)加速器寫入FIFO信息后即可進(jìn)入處理器讀取信息的狀態(tài)。
[0057]狀態(tài) Write
[0058]該狀態(tài)把FIFO中存數(shù)的數(shù)據(jù)向?qū)?yīng)的加速器進(jìn)行發(fā)送。當(dāng)寫入數(shù)據(jù)量和命令中要 求的數(shù)據(jù)量一致時表明完成了一次寫操作,進(jìn)入Idle狀態(tài)。
[0059]狀態(tài) Read
[0060]該狀態(tài)在MSP430端讀取FIFO中存儲的來自于硬件加速器中的數(shù)據(jù)。單純的讀操作 情況下,當(dāng)讀的數(shù)據(jù)量和命令中要求的數(shù)據(jù)量一致時,進(jìn)入Idle狀態(tài)。在Rmw操作下,讀數(shù)后 則進(jìn)入Pre_write狀態(tài),為寫操作做準(zhǔn)備。
[0061]軟件部分主要完成代理機(jī)的底層驅(qū)動、增加新的硬件抽象層組件并提供給WSN節(jié) 點應(yīng)用開發(fā)者加速器接口的工作。軟件部分的設(shè)計層次遵循TinyOS操作系統(tǒng)的規(guī)范進(jìn)行如 下的設(shè)計。
[0062] HPL層(硬件表示層)提供命名為Agent的組件,該組件包含代理機(jī)的接口信息如表 1所示
[0064] 參數(shù)read_data和write_data分別代表了讀取的數(shù)據(jù)和需要寫入的數(shù)據(jù)。Read和 Wri te負(fù)責(zé)傳遞數(shù)據(jù),而Com接口中的命令傳遞的是讀\寫等命令信息。按照Wi shbone的傳輸 模式,使用上述的四個接口中的八個命令設(shè)計提供給系統(tǒng)開發(fā)者的Wishbone組件。
[0065]胃1811130116組件提供給系統(tǒng)設(shè)計者相應(yīng)的接口和命令(1?11?¥、1?81:、13_1^3(1、3_代3(1、13_ Wri te、S_wri te這五種和Wi shbone總線傳輸模式匹配的接口及同名的命令)。該組件中所有 命令都是調(diào)用Agent組件中的接口和命令完成。此外,代理機(jī)的復(fù)位需要在原有TinyOS的復(fù) 位組件上添加對代理機(jī)復(fù)位的操作;而每個硬件加速器的復(fù)位由命令rst執(zhí)行。這樣就完成 了擴(kuò)展方案軟件層的設(shè)計。
[0066] 上述發(fā)明完成了代理機(jī)設(shè)計;預(yù)留出和加速器連接的標(biāo)準(zhǔn)總線接口;約定發(fā)送給 代理機(jī)的命令格式;增加在操作系統(tǒng)(實例中使用的是TinyOS)中對代理機(jī)讀/寫操作的硬 件表示層接口。
[0067] 圖7展不了以128位的AES(Advanced Encryption Standard)加密引擎作為不例加 速器通過Wishbone總線掛接到代理機(jī)上的新型TelosB節(jié)點結(jié)構(gòu)圖。AES算法是一種WSN節(jié)點 中常用的加密算法,輸入包括128位的明文和128位的密鑰,運算后輸出對應(yīng)的128位的密 文。此系統(tǒng)中分配地址給AES的加密引擎及其內(nèi)部的明文、密鑰和密文寄存器。
[0068]系統(tǒng)開發(fā)者在上述代理機(jī)的硬件表示層接口的基礎(chǔ)上根據(jù)AES的數(shù)據(jù)接口添加新 的名為AES的新組件,其中包含的內(nèi)容如下所示
[0070] 上述完成了 AES加密引擎在新系統(tǒng)的添加。按照標(biāo)準(zhǔn)的TelosB節(jié)點開發(fā)的流程,編 寫Nesc語言調(diào)用AES加密引擎對應(yīng)的接口和命令添加明文和密鑰數(shù)據(jù)即可完成新的應(yīng)用開 發(fā)。
[0071] 按照上述方案,即可簡單完成在TinyOS上添加加速引擎的任務(wù),加速引擎地址和 寄存器地址都可以由系統(tǒng)開發(fā)者進(jìn)一步定義成參數(shù)形式,提供更加方便明了的用戶接口。
[0072] 本發(fā)明提供的方案把對擴(kuò)展加速器的訪問虛擬成對外設(shè)地址的讀寫,實現(xiàn)了對原 有指令集的兼容,從而保證了新添加硬件的組件對原有標(biāo)準(zhǔn)組件的完整兼容性;封裝后的 擴(kuò)展加速器組件,為用戶上層調(diào)用擴(kuò)展資源提供了便利,減輕了用戶在WSN節(jié)點平臺上增加 新模塊和軟件移植的難度和工作量,并以TelosB節(jié)點對應(yīng)的硬件以及TinyOS操作系統(tǒng)為例 實現(xiàn)了 AES加密加速器的添加演示了該發(fā)明的具體操作過程,為在現(xiàn)有WSN節(jié)點系統(tǒng)平臺上 添加新的引擎或者其他硬件提供了可靠且簡單的實現(xiàn)方法。
[0073] 以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍 為準(zhǔn)。
【主權(quán)項】
1. 一種嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,在原WSN節(jié)點處理器硬件系 統(tǒng)上增加一個代理機(jī)和若干硬件加速器,所述代理機(jī)設(shè)置于WSN節(jié)點的處理器外設(shè)總線上, 向上對WSN節(jié)點的處理器負(fù)責(zé),并作為所有新增硬件加速器的總代理,向下管理所有新增硬 件加速器,所述代理機(jī)與所有新增硬件加速器構(gòu)成一個子系統(tǒng),該子系統(tǒng)使用一個處理器 中未使用的地址,在該子系統(tǒng)中每個新增硬件加速器及內(nèi)部可訪問寄存器都有分配的唯一 的局部地址,每個新增硬件加速器至少對應(yīng)一個地址,用做訪問索引,對加速器的訪問是向 子系統(tǒng)發(fā)送包含子系統(tǒng)地址的命令形式進(jìn)行的。2. 根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,在WSN節(jié)點 操作系統(tǒng)上,相應(yīng)設(shè)置: 針對所述代理機(jī)的新增底層驅(qū)動; 提供代理機(jī)與新增硬件加速器總線傳輸方式對應(yīng)接口的新增硬件抽象層組件; 以及 根據(jù)所選硬件加速器的特性提供訪問和操作接口的用戶接口層。3. 根據(jù)權(quán)利要求2所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,所述新增底 層驅(qū)動不影響原有的操作系統(tǒng)資源庫的任何組件,且屏蔽了新增硬件加速器與處理器之間 的硬件接口的細(xì)節(jié)。4. 根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,所述代理機(jī) 與WSN節(jié)點的處理器之間通過處理器內(nèi)部的外設(shè)總線進(jìn)行通信,所述代理機(jī)與新增硬件加 速器之間通過標(biāo)準(zhǔn)的主-從型SOC總線進(jìn)行通信,代理機(jī)充當(dāng)主機(jī),硬件加速器是從機(jī)。5. 根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,所述代理機(jī) 與WSN節(jié)點的處理器之間,一次交易中第一組數(shù)據(jù)約定為操作"命令",之后才是需要交換的 數(shù)據(jù),處理器通過向代理機(jī)發(fā)送操作"命令"和讀\寫數(shù)據(jù)實現(xiàn)對新增硬件加速器的控制和 數(shù)據(jù)交換,所述操作"命令"是一種預(yù)先定義好的字段,包含操作類型、傳輸?shù)刂?、傳輸模?和傳輸長度這四種信息。6. 根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,所述子系統(tǒng) 在處理器上的復(fù)位方式執(zhí)行時實現(xiàn)整體復(fù)位;而單獨對代理機(jī)的復(fù)位封裝于軟件層的接口 中,對應(yīng)用層不可見;對新增硬件加速器的復(fù)位通過向代理機(jī)發(fā)送命令執(zhí)行,由應(yīng)用層軟件 控制,所述處理器上的復(fù)位方式包括上電復(fù)位和看門狗復(fù)位。7. 根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,所述處理器 向代理機(jī)發(fā)送\讀取數(shù)據(jù)是按照指令周期進(jìn)行傳輸?shù)?,代理機(jī)和新增硬件加速器之間通信 是標(biāo)準(zhǔn)SOC總線上按照時鐘周期的模式進(jìn)行傳輸?shù)?,在讀和寫操作過程中分別使用寫FIFO 和讀FIFO暫存數(shù)據(jù),以解決代理兩側(cè)數(shù)據(jù)不同步的問題。8. 根據(jù)權(quán)利要求1所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其特征在于,新的應(yīng)用程 序使用原有硬件資源接口或新增的硬件加速器資源接口,當(dāng)使用新增的硬件加速器資源接 口時,硬件系統(tǒng)進(jìn)行一次數(shù)據(jù)傳輸?shù)膱?zhí)行步驟包括: 1) 、代理機(jī)首先解析操作"命令"并決定接下來進(jìn)行復(fù)位、數(shù)據(jù)讀/寫或其他不同SoC總 線特有的操作,決定讀/寫的地址以及讀寫的數(shù)據(jù)長度; 2) 、如果是復(fù)位操作,則代理機(jī)按照所述的子系統(tǒng)中的SoC總線協(xié)議對硬件加速器進(jìn)行 復(fù)位;如果是讀/寫操作,處理器通過外設(shè)總線對代理機(jī)地址進(jìn)行讀/寫,代理機(jī)再按照所述 子系統(tǒng)中的SoC總線協(xié)議對應(yīng)的讀/寫模式訪問操作"命令"中地址指向的硬件加速器寄存 器,同時,代理機(jī)會對讀/寫的次數(shù)進(jìn)行計數(shù),當(dāng)數(shù)據(jù)讀/寫的數(shù)目和命令中要求的傳輸長度 一致時,表示完成了一次數(shù)據(jù)讀/寫的交易; 3 )、一次交易結(jié)束,代理機(jī)掛起,等待新的操作"命令"開始下一次交易。9.根據(jù)權(quán)利要求8所述嵌入式系統(tǒng)的兼容式加速器擴(kuò)展方法,其軟件特征在于,操作系 統(tǒng)底層添加代理機(jī)的驅(qū)動接口函數(shù),代理機(jī)的驅(qū)動接口函數(shù)包括對代理進(jìn)行復(fù)位的功能函 數(shù),對應(yīng)于SOC總線的標(biāo)準(zhǔn)定義的每種訪問交易有一個對應(yīng)的功能函數(shù),每個功能函數(shù)根據(jù) 權(quán)利要求8執(zhí)行其中所述的1)至3)的操作過程;操作系統(tǒng)的硬件抽象層添加每個加速器的 組件,每個組件向上層提供加速器的各種基本操作的接口,向下調(diào)用代理機(jī)的驅(qū)動接口函 數(shù)實現(xiàn)加速器的功能且不改動原操作系統(tǒng)中的已有硬件抽象層組件;應(yīng)用程序調(diào)用硬件抽 象層的加速器組件接口實現(xiàn)不同應(yīng)用。
【文檔編號】G06F9/445GK105893036SQ201610192047
【公開日】2016年8月24日
【申請日】2016年3月30日
【發(fā)明人】李翔宇, 肖顯峰, 劉永昌
【申請人】清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1