Neuron多處理器芯片及其應(yīng)用
關(guān)鍵詞:神經(jīng)元芯片 多處理器 Neuron固件
一、Neuron芯片的基本組成
Neuron芯片作為一種多處理器結(jié)構(gòu)的神經(jīng)元芯片,有著完整的系統(tǒng)資源,如圖1所示,其內(nèi)部集成有三個(gè)管線CPU,最高工作頻率可達(dá)10MHz。它設(shè)置有11編程輸入、輸出引腳(IO1~I(xiàn)O10),編程方法多達(dá)34種,方便了實(shí)現(xiàn)應(yīng)用。片內(nèi)設(shè)有EEPROM和RAM,支持有外部擴(kuò)展多種存儲(chǔ)器的接口,最大存儲(chǔ)空間允許有64KB。內(nèi)部含有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,能夠由固件產(chǎn)生15個(gè)軟件定時(shí)器。Neuron芯片的長(zhǎng)處還在于它的網(wǎng)絡(luò)通信功能,引出的五個(gè)通信引腳(CP0~CP4)提供了單端、差分和特殊應(yīng)用模式等三種網(wǎng)絡(luò)通信方式。
1.處理器單元
Neuron芯片集成有三個(gè)處理器,其中一個(gè)用于執(zhí)行用戶編寫(xiě)的應(yīng)用程序,另外兩個(gè)完成網(wǎng)絡(luò)任務(wù)。圖2示意了Neuron芯片內(nèi)三個(gè)處理器的功能分配及與內(nèi)部共享存儲(chǔ)器區(qū)域之間的關(guān)系。
(1)MAC處理器是媒體訪問(wèn)控制層處理器。它處理OSI七層網(wǎng)絡(luò)協(xié)議中的1,2層,主要包括驅(qū)動(dòng)通信子系統(tǒng)硬件以及執(zhí)行沖突回避算法等。MAC處理器使用位于共享存儲(chǔ)器中的網(wǎng)絡(luò)緩沖區(qū)與網(wǎng)絡(luò)處理器進(jìn)行通信。
(2)網(wǎng)絡(luò)處理器實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議中的3~6層。它實(shí)現(xiàn)網(wǎng)絡(luò)變量處理、尋址、事務(wù)處理、文電鑒別、軟件定時(shí)器、網(wǎng)絡(luò)管理和路由等功能。網(wǎng)絡(luò)處理器通過(guò)共享存儲(chǔ)器中的網(wǎng)絡(luò)緩沖區(qū)與MAC處理器通信,并采用應(yīng)用緩沖區(qū)與應(yīng)用處理器進(jìn)行通信。應(yīng)用緩沖區(qū)也是設(shè)置在共享存儲(chǔ)器中的。對(duì)緩沖區(qū)的訪問(wèn)都用硬件信號(hào)燈來(lái)協(xié)調(diào),以便在更新共享數(shù)據(jù)時(shí)消除競(jìng)爭(zhēng)。
(3)應(yīng)用處理器一方面執(zhí)行用戶編寫(xiě)的應(yīng)用程序代碼,另一方面執(zhí)行由用戶代碼所調(diào)用的操作系統(tǒng)服務(wù)。大多數(shù)應(yīng)用程序均可采用Neuron C語(yǔ)言來(lái)編制,使編程工作真正從繁瑣的匯編語(yǔ)言中解脫出來(lái)。
2.存儲(chǔ)器分配
MC143150的外擴(kuò)存儲(chǔ)器接口總線中,有8位雙向數(shù)據(jù)總線、16位處理器驅(qū)動(dòng)的地址總線以及用于外部存儲(chǔ)器存取訪問(wèn)的兩個(gè)接口信號(hào)線R/W和E??偟牡刂房臻g為64KB,其中有6KB的地址空間保留在芯片內(nèi),剩余的58KB的地址空間供外擴(kuò)存儲(chǔ)器使用。在外擴(kuò)存儲(chǔ)器中,通常用16KB存放固件,其余的42KB用于存放用戶程序和數(shù)據(jù)信息。
3.應(yīng)用I/O口
具有11個(gè)引腳的I/O接口提供有34種編程方式,另外,2個(gè)16位定時(shí)器/計(jì)數(shù)器可用于頻率和定時(shí)I/O。由固件產(chǎn)生的15種軟件定時(shí)器并不占用應(yīng)用處理器的運(yùn)算時(shí)間,而由完成網(wǎng)絡(luò)功能的處理器實(shí)現(xiàn)。因此,用戶可直接使用軟件定時(shí)器,不必考慮其具體操作。
Neuron芯片提供的11個(gè)I/O引腳(IO0~I(xiàn)O10)可通過(guò)編程設(shè)定為34種不同的I/O對(duì)象,支持電平、脈沖、頻率、編碼等各種信號(hào)模式,有直接I/O對(duì)象、定時(shí)器/計(jì)數(shù)器I/O對(duì)象、串行I/O對(duì)象、并行I/O對(duì)象等供用戶選擇。它們與集成的硬件和固件一起可用于連接馬達(dá)、閥門(mén)、顯示驅(qū)動(dòng)器、A/D轉(zhuǎn)換器、壓力傳感器、熱敏電阻、開(kāi)關(guān)量、繼電器、可控硅、轉(zhuǎn)速計(jì)、其他處理器和調(diào)制解調(diào)器等,方便了實(shí)際應(yīng)用。表1列舉了所有I/O對(duì)象的基本類型。
表1 I/O對(duì)象類型參照表
I/O對(duì)象類型 | 注 釋 |
Bit input/output | 位輸入/輸出 |
Bitshift input/output | 位稱輸入/輸出 |
Byte input/output | 字節(jié)輸入/輸出 |
Dualslope input | 雙積分輸入 |
Edgedivide output | 脈沖沿分離輸出 |
Edgelog input | 邊沿跳變時(shí)間間隔序列輸入 |
Frequency output | 頻率輸出 |
I2C input/output | I2C輸入/輸出 |
Infrared input | 遠(yuǎn)紅外輸入 |
Leveldetect input | 電平監(jiān)測(cè)輸入 |
Magcard input | 磁卡編碼輸入 |
Magtrackl input | 經(jīng)錄入1輸入 |
Muxbus input/output | 多總線輸入/輸出 |
Neurowire input/output | 神經(jīng)元接口輸入/輸出 |
Nibble input/output | 半字節(jié)輸入/輸出 |
Oneshot output | 單穩(wěn)輸出 |
Ontime input | 邏輯電持續(xù)時(shí)間輸入 |
Parallel input/output | 并行輸入/輸出 |
Preiod input | 周期輸入 |
Pulsecount input | 脈沖計(jì)數(shù)輸入 |
Pulsecount output | 脈沖計(jì)數(shù)輸出 |
Pulsewidth output | 脈寬輸出 |
Quadrature input | 位置碼盤(pán)輸入 |
Serial input/output | 串行輸入/輸出 |
Totalcount input | 累加計(jì)數(shù)輸入 |
Touch input/output | 觸點(diǎn)輸入/輸出 |
Triac output | 觸發(fā)輸出 |
Triggeredcount output | 計(jì)數(shù)觸發(fā)輸出 |
Wiegand input | 維甘德輸入 |
4.通信口
由CP0~CP4組成的通信接口,允許工作在單端或差分模式,既可直接驅(qū)動(dòng),也可外接變壓器驅(qū)動(dòng)或外接485總線驅(qū)動(dòng)。傳輸速率的選擇范圍為0.6kb/s~1.2Mb/s。
5.附加功能
Neuron芯片具有睡眠/喚醒電路、看門(mén)狗定時(shí)器和服務(wù)引腳等附加功能。
(1)Neuron芯片可以在軟件控制下進(jìn)入低耗的睡眠狀態(tài),此時(shí),振蕩器系統(tǒng)時(shí)鐘、通道端口所用的定時(shí)器/計(jì)數(shù)器均關(guān)閉。但是,所有的狀態(tài)信息(包括內(nèi)部RAM中的內(nèi)容)都保留,這樣可以降低系統(tǒng)功耗。
(2)Neuron芯片中的處理器由三個(gè)看門(mén)狗定時(shí)器保護(hù),主要針對(duì)軟件錯(cuò)誤或存儲(chǔ)器錯(cuò)誤。若系統(tǒng)軟件或應(yīng)用軟件不能周期性地復(fù)位些定時(shí)器,則整個(gè)神經(jīng)元芯片將被自動(dòng)復(fù)位。在10MHz時(shí)鐘下,看門(mén)狗定時(shí)器大約持續(xù)0.84s。
(3)Service引腳在芯片固件的控制下,為配置和安裝含有芯片的節(jié)點(diǎn)時(shí)使用。該引腳的可編程上拉電阻由應(yīng)用軟件選擇。
二、Neuron固件
Neuron芯片的固件主要包括基于OSI參考模型的LonTalk協(xié)議、I/O驅(qū)動(dòng)程序、事件驅(qū)動(dòng)的多任務(wù)調(diào)試程度以及函數(shù)庫(kù)等部分。其中的LonTalk協(xié)議具有通用性,支持多種媒體和多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并提供多種服務(wù)。LonTalk協(xié)議可使控制信息在各種介質(zhì)中可靠地傳輸。表2列出了LonTalk與OSI 7層協(xié)議之間的比較,以及與Neuron芯片中三個(gè)處理器之間的關(guān)系。
表2 LonTalk與OSI7層協(xié)議的比較
層號(hào) | OSI層次 | 標(biāo)準(zhǔn)服務(wù) | LON提供的服務(wù) | 處理器 |
7 | 應(yīng)用層 | 網(wǎng)絡(luò)應(yīng)用 | 定義標(biāo)準(zhǔn)網(wǎng)絡(luò)變量類型 | 應(yīng)用處理器 |
6 | 表示層 | 數(shù)據(jù)表示 | 網(wǎng)絡(luò)變量、外部幀傳送 | 網(wǎng)絡(luò)處理器 |
5 | 會(huì)話層 | 遠(yuǎn)程操作 | 請(qǐng)求/響應(yīng)、認(rèn)證、網(wǎng)絡(luò)管理 | 網(wǎng)絡(luò)處理器 |
4 | 傳送層 | 端對(duì)端的可靠傳輸 | 應(yīng)答、非應(yīng)答、點(diǎn)對(duì)點(diǎn)、廣播、認(rèn)證等 | 網(wǎng)絡(luò)處理器 |
3 | 網(wǎng)絡(luò)層 | 目的地址尋址 | 地址、路由 | 網(wǎng)絡(luò)處理順 |
2 | 鏈路層 | 介質(zhì)訪問(wèn)和數(shù)據(jù)組幀 | 幀結(jié)構(gòu)、數(shù)據(jù)解碼、CRC差錯(cuò)檢測(cè)預(yù)測(cè)、CSMA磁撞回避、選擇優(yōu)先級(jí)、碰撞檢測(cè) | MAC處理器 |
1 | 物理層 | 電氣連接 | 介質(zhì)、電氣接口 | MAC處理器 |
三、Neuron C語(yǔ)言
Neuron C是基于ANSI C并針對(duì)LonWorks分布控制的應(yīng)用,經(jīng)優(yōu)化、加強(qiáng)而成的一種程序設(shè)計(jì)語(yǔ)言。它增強(qiáng)了對(duì)I/O支持、時(shí)間處理、報(bào)文傳遞等功能,其擴(kuò)充部分包括軟件定時(shí)器、網(wǎng)絡(luò)變量、顯式報(bào)文、一個(gè)多任務(wù)調(diào)試、EEPROM變量和雜函數(shù)等。Neuron C語(yǔ)言提供的主要特征和支持包括以下內(nèi)容。
(1)一個(gè)內(nèi)部多任務(wù)調(diào)度程序:允許程序員以一種自然的方式邏輯地表達(dá)由事件引發(fā)的并行任務(wù),并可以控制任務(wù)執(zhí)行的優(yōu)先級(jí)。
(2)一個(gè)Run-Time函數(shù)庫(kù):調(diào)用時(shí)執(zhí)行事件檢查、I/O管理、網(wǎng)絡(luò)信息的接收和傳送、Ueuron的多種控制等。
(3)實(shí)現(xiàn)對(duì)I/O操作顯式的控制:通過(guò)對(duì)I/O對(duì)象的說(shuō)明來(lái)定義標(biāo)準(zhǔn)化Neuron芯片特有的多功能I/O。
(4)新一級(jí)對(duì)象“網(wǎng)絡(luò)變量”的說(shuō)明語(yǔ)句:網(wǎng)絡(luò)變量作為Neuron C語(yǔ)言的對(duì)象,無(wú)論何時(shí)被賦值,其值都可自動(dòng)地傳遍網(wǎng)絡(luò)。網(wǎng)絡(luò)變量的引入和使用了節(jié)點(diǎn)間的數(shù)據(jù)共享。
(5)新語(yǔ)句“when”:定義由事件驅(qū)動(dòng)的任務(wù)。
(6)支持顯式報(bào)文傳遞:實(shí)現(xiàn)對(duì)基本LonTalk協(xié)議服務(wù)的直接訪問(wèn)。
(7)一種對(duì)毫秒和秒計(jì)時(shí)器對(duì)象說(shuō)明的語(yǔ)句:它們?cè)谕V褂?jì)數(shù)時(shí)將會(huì)激活用戶定義的任務(wù)。
利用Neuron C語(yǔ)言提供的支持,可大大控制網(wǎng)絡(luò)軟件的開(kāi)發(fā)和應(yīng)用,使開(kāi)發(fā)人員幾乎感覺(jué)不到在網(wǎng)絡(luò)環(huán)境下編程。
四、應(yīng)用系統(tǒng)的基本組成
圖3所示是基于Neuron芯片的應(yīng)用系統(tǒng),一般由下述器件構(gòu)成。
1.Neuron芯片
它主要用于實(shí)現(xiàn)LonTalk協(xié)議服務(wù),執(zhí)行節(jié)點(diǎn)中的應(yīng)用程序。
2.收發(fā)器
收發(fā)器其實(shí)是連接Neuron芯片和通信介質(zhì)之間的接口,可支持比絞線、電力線、無(wú)線射頻、光纖及紅外等多種介質(zhì)的通信。由于Neuron固件中含有通信協(xié)議,因此,該器件的使用對(duì)構(gòu)建網(wǎng)絡(luò)環(huán)境的應(yīng)用系統(tǒng)十分方便。
3.應(yīng)用電路
應(yīng)用電路是連接Neuron芯片的I/O引腳到諸如傳感器、執(zhí)行器、鍵盤(pán)、顯示器等I/O設(shè)備所需的電子線路。它需要按照不同的應(yīng)用要求單獨(dú)設(shè)計(jì)。此時(shí),只要通過(guò)配置I/O對(duì)象和編制Neuron C應(yīng)用程序,就能控制該應(yīng)用系統(tǒng)的工作,并實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境的通信功能。
從圖3所示的應(yīng)用系統(tǒng)可知:Neuron芯片的I/O口可通過(guò)應(yīng)用電路輸入或輸出數(shù)據(jù),以與外界接口;借助于Neuron芯片固件中的LonTalk協(xié)議支持,Neuron芯片的通信口可通過(guò)收發(fā)器實(shí)現(xiàn)與網(wǎng)上其他應(yīng)用系統(tǒng)的雙向數(shù)據(jù)通信。Neuron芯片的強(qiáng)大功能和組成應(yīng)用系統(tǒng)的靈活結(jié)構(gòu),對(duì)組建分布式應(yīng)用系統(tǒng)無(wú)疑是相當(dāng)方便的。