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