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