1 引言
隨著智能儀器及控制系統對實時性信號處理的要求不斷提高和大規模集成電路技術的迅速發展。越來越迫切的要求有一種高性能的設計方案與之相適應,將dsp技術和arm技術結合起來應用于嵌入式系統中,將會充分發揮兩者優勢以達到智能控制系統中對數據的實時性、性的通信要求。該嵌入式系統要求實時響應,具有嚴格的時序性。其工作環境可能非常惡劣,如高溫、低溫、潮濕等,所以系統還要求非常高的穩定性。
2 嵌入式系統的總體設計
2.1 核心器件的主要功能
arm和dsp分別選用cirrus logic公司的ep7312、ti公司的tms320vc5402。充分利用arm豐富的片上資源和dsp強大的信號處理功能,實現性、實時性的信號處理及網絡通信功能。
ep7312是專為高性能、超低功耗產品而設計的微處理器,采用arm7tdmi處理器內核,具有8kb高速緩沖存儲器,支持存儲器管理單元,片內集成了液晶顯示器控制器,鍵盤掃描器,數字音頻接口,*的jtag等功能,廣泛地應用于嵌入式領域。tms320c54xdsp提供了mcbsps(多通道緩沖串口);6通道的dma控制器;可以與外部處理器直接通信的8位增強hpi(主機接口)。選擇這樣的soc(片上系統)作為該系統的核心器件,使得其穩定可靠并具有廣泛的擴展功能。
2.2 系統總體設計及工作原理
系統總體設計框圖如圖1所示。本系統主要是實現信號的實時性處理及傳輸,滿足工業現場及各種測量儀器的高可靠性要求。arm有豐富的片上資源,適合嵌入式系統的開發,在該嵌入式系統中,arm主要負責操作系統的運行、任務管理和協調以及dsp的控制任務,完成數據的遠程通信。擴展了外部擴展了多種外設,如通用串口、lcd顯示屏,以太網接口。通過連接以太網控制器實現網絡化功能。在arm中移植了linux操作系統和實現了系統外部硬件接口的驅動程序。由dsp執行計算密集型操作,實現多種信號處理算法,然后將處理后的數字信號通過主機口接口(hpi)與arm通信。再由arm通過以太網控制器將數據傳輸到網絡,實現了遠程控制與監測。
圖1系統總體硬件框圖
3 系統硬件具體設計方案
3.1 arm與dsp的接口設計
ep7312和tms320vc5402連接的接口電路如圖2所示。vc5402通過hpi與arm進行連接。arm先向dsp寫入控制字,設置工作模式,然后將訪問地址寫入地址寄存器(hpia),再對數據鎖存器(hpid)進行讀寫,即可讀出和寫入的存儲單元。主機由兩根地址線a2、a1可以尋址到hpi接口的所有控制寄存器、地址寄存器和數據寄存器;由hbil、hcntl1、hcntl0區分16位數據的高、低字節。當向hbil=0的地址寫入數據時,表示是*個字節,向hbil=1的地址寫入數據表示第二個字節。尋址過程中hcs要為低電平。
圖2ep7312與tms320vc5402的連接
dsp的hpi接口片選信號使用ep7312擴展片選信號ncs4,hpi各個特殊功能寄存器的映射地址如下:
#define hpic0 *(volatile unsigned char*)0x40000000
#define hpic1 *(volatile unsigned char*)0x40000001
#define hpia0 *(volatile unsigned char*)0x40000004
#define hpia1 *(volatile unsigned char*)0x40000005
#define hpid0 *(volatile unsigned char*)0x40000006
#define hpid1 *(volatile unsigned char*)0x40000007
設置好dsp的狀態后,dsp向arm發送中斷,通知arm已將數據準備好,等待arm發中斷,dsp在中斷中對接收的數據進行處理。arm在初始化后,等待dsp發送中斷通知arm數據已經準備好。arm在檢測到中斷后,先判斷中斷是否有效,再從hpi口讀寫數據,在完成向hpi口發送數據后,向dsp發送中斷通知dsp接收數據。arm通過控制端口信號模擬接口時序,來完成對hpi口寄存器的訪問。由于dsp在boot過程中向arm發送了中斷,所以arm在初始化時要清除這個中斷,并且在數據交互之前要設置控制寄存器中的bob位,指示高地址在前還是低地址在前。這一步在程序初始化時由arm來完成。
3.2 arm與以太網控制器之間的通信設計
系統平臺實現了以太網接口。提供了以太網芯片的驅動,支持網絡功能。以太網控制芯片的數據、地址和控制信號與ep7312的總線相連,如圖3所示。片選信號使用ep7312的擴展片選信號ncs2。
圖3 以太網接口原理圖
rtl8019默認的i/o基地址是300h,用到的地址空間為300h~3ffh,因此使用到ep7312的低4位地址線,將rtl8019上的sa19~sa10和sa7~sa5接為地,sa9、sa8接為vcc。rtl8019as使用的是16位數據總線方式,因此,將rtl8019上的iocs16b引腳通過10k的上拉電阻接為vcc;通過io模式讀寫以太網控制器,所以smemrb和smemwb引腳通過上拉電阻接為vcc。
當ep7312向網上發送數據時,先將一幀數據通過遠程dma通道送到rtl8019as中的發送緩存區,然后發出傳送命令;當rtl8019as完成了上一幀的發送后,再開始此幀的發送。rtl8019as接收到的數據通過mac比較、crc校驗后,由fifo存到接收緩沖區;收滿一幀后,以中斷的方式通知ep7312。fifo邏輯對收發數據作16字節的緩沖,以減少對本地dma請求的頻率。
以太網控制器有兩個指針寄存器來控制緩沖區的存儲過程,當前頁面指針curr和邊界指針bnry。curr指向新接收到幀的起始頁面,即接收緩沖環的寫頁面指針;bnry指向讀過的zui后一個頁面,即接收緩沖環讀頁面指針。自定義指針next_page,表示存儲分組緩沖區的邊界,初始值為next_page=bnry,讀取一頁數據后由軟件執行bnry加1,curr自動加1。curr不等于bnry時,表示有新的數據包在緩沖區中,讀取一包的前四個字節,前四個字節并不是以太網數據包的內容。分別表示數據包存放的頁地址和已接收的數據的字節數。如果curr=0,表示讀取出錯,返回null。如果bnry>0x7f,則bnry=0x4c。
4 嵌入式系統軟件設計
4.1 bootloader的設計
該嵌入式系統引入了linux操作系統,可以給系統下的任務提供調度機制,簡化任務中的需求操作,當需求變化時只需要改變任務內容,然后重新和操作系統發布即可。
本系統中ep7312采用的是外部啟動方式,也就是從cs[0]片選的外部norflash啟動,系統啟動后,執行啟動代碼,即初始化cpu、內存控制器以及片上設備,然后配置存儲映射。啟動代碼隨后執行一個引導裝載程序bootloader,將內核從flash中解壓到sram中,然后跳轉到內核的*條指令處執行,內核運行。
bootloader完成從硬件啟動到操作系統啟動的過渡,用于初始化硬件和啟動操作系統。在內核運行之前需要bootloader作為系統驅動程序完成加載內核和一些輔助性的工作,然后跳轉到內核代碼的起始地址并執行。對于該系統來說選擇ep7211所使用的bootloader—shoehorn,然后做一些改動。如調整系統各個寄存器的地址值;設定sdram控制器;調整uart1的波特率等。shoehorn代碼分為host端和target端兩部分,一部分由eth.c、serial.c、shoehorn.c和util.c組成,由這些文件編譯生成host端的可執行文件shoehorn;另一部分由ini.s和loader.c組成,編譯生成一個小于2kb的文件loader.bin,這個二進制文件會被下載到target端的sram中用來引導系統的啟動。通過一系列的主機與開發板之間的握手通信、下載程序的方式使得代碼相對分散,減小開發板上起始代碼的大小,以滿足目標板上下載代碼的限制。
4.2 內核的配置
該嵌入式系統選擇了較成熟穩定的linux-2.4.13版本內核。為了避免修改內核定制代碼
時造成代碼的不穩定和失去代碼的靈活性,可以通過選擇合適的版本內核,修改該配置文件,裁剪不必要的功能,再編譯出符合新配置的內核,得到既滿足應用功能要求同時體積又小的內核,產生一個隱藏文件/usr/src/linux/.config。該文件記錄了對內核具體功能模塊的選擇和配置。
內核配置時,大部分的選項都可以使用缺省值,只有小部分需要根據需求選擇,將與內核關系比較近且經常用到的功能代碼直接編譯進內核;將不經常用到的代碼編譯為可加載模塊,有利于減小內核的長度,增加靈活性。
4.3 驅動程序的設計
在linux操作系統中驅動程序是操作系統內核與硬件設備直接的接口。驅動程序屏蔽了硬件的細節。在應用程序看來硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作。
設備驅動程序可以設計模塊化方式。不必編譯進內核,而是被分別編譯并鏈接成一組目標文件,這些文件可以被載入正在運行的內核,或從正在運行的內核中卸載。可以減少內核的長度,具有很大的靈活性。
4.4 dsp中信號處理算法的實現
多數傳感器對于溫度、濕度、電源的波動等環境因素都存在著交叉靈敏度,產生較大的誤差,測量精度和穩定性都受到一定的影響。在dsp中采用數據融合技術可以消除干擾,提高傳感器的測量精度。數據融合是通過組合,將傳感器數據之間進行相關,以從輸出元素獲得更多的信息。保證在環境干擾變化很大的情況下也可以有較高的測量精度和穩定性。采用軟件方法對傳感器數據融合處理被證明是一種很好的方法。
該系統的網絡功能可以將多個功能相同或不同的嵌入式智能儀器連接在一起組成智能傳感器網絡。每個智能儀器節點都具有數據采集、數據處理和通信的功能。信息融合技術可以將來自多個傳感器的數據進行多級別、多方面、多層次的處理,從而產生新的有意義的信息,而這種新信息是任何單一傳感器所無法獲得的準確度更高的表征客觀環境的信息。這種技術在傳感器網絡中有著舉足輕重的作用。
5 結束語
該嵌入式智能儀器系統的設計,為儀器儀表方便有效的接入以太網提供了很好的解決方案,實現了遠程控制和實時性的數據傳輸。由于采用并發多任務技術處理該嵌入式系統復雜的外部事件,以及控制軟件系統的復雜性,保證了系統的實時性能。該嵌入式系統的軟硬件配置精簡,抗*力符合環境要求;裝配結構便于檢修。這種嵌入式智能儀器系統的實現使嵌入式設計在數據處理及檢測控制領域里得到了很好的應用。
參考文獻:
[1]李明,康靜秋,賈智平.嵌入式tcp/ip協議棧的研究與開發[j].計算機工程與應用,2002,(16):118-121
[2]高玉龍,朱秀珍,張興周.基于arm的家庭智能化系統設計與實現[j].應用科技,2003,(9):32-34
[3]趙偉國,王文海,馮華.嵌入式系統在智能儀表的應用[j].計算機應用,2003,(4):55-57
[4]ep7312 user’s manual.cirrus logic corporation,2000.
[5]tms320c54x dsp enhanced peripherals reference set[z].ti corporation,2000.
function imgzoom(id)//重新設置圖片大小 防止撐破表格{var w = $(id).width;var m = 550;if(w < m){return;}else{var h = $(id).height;$(id).height = parseint(h*m/w);$(id).width = m;}}window.onload = function(){var imgs = $("content").getelementsbytagname("img");var i=0;for(;i
隨著智能儀器及控制系統對實時性信號處理的要求不斷提高和大規模集成電路技術的迅速發展。越來越迫切的要求有一種高性能的設計方案與之相適應,將dsp技術和arm技術結合起來應用于嵌入式系統中,將會充分發揮兩者優勢以達到智能控制系統中對數據的實時性、性的通信要求。該嵌入式系統要求實時響應,具有嚴格的時序性。其工作環境可能非常惡劣,如高溫、低溫、潮濕等,所以系統還要求非常高的穩定性。
2 嵌入式系統的總體設計
2.1 核心器件的主要功能
arm和dsp分別選用cirrus logic公司的ep7312、ti公司的tms320vc5402。充分利用arm豐富的片上資源和dsp強大的信號處理功能,實現性、實時性的信號處理及網絡通信功能。
ep7312是專為高性能、超低功耗產品而設計的微處理器,采用arm7tdmi處理器內核,具有8kb高速緩沖存儲器,支持存儲器管理單元,片內集成了液晶顯示器控制器,鍵盤掃描器,數字音頻接口,*的jtag等功能,廣泛地應用于嵌入式領域。tms320c54xdsp提供了mcbsps(多通道緩沖串口);6通道的dma控制器;可以與外部處理器直接通信的8位增強hpi(主機接口)。選擇這樣的soc(片上系統)作為該系統的核心器件,使得其穩定可靠并具有廣泛的擴展功能。
2.2 系統總體設計及工作原理
系統總體設計框圖如圖1所示。本系統主要是實現信號的實時性處理及傳輸,滿足工業現場及各種測量儀器的高可靠性要求。arm有豐富的片上資源,適合嵌入式系統的開發,在該嵌入式系統中,arm主要負責操作系統的運行、任務管理和協調以及dsp的控制任務,完成數據的遠程通信。擴展了外部擴展了多種外設,如通用串口、lcd顯示屏,以太網接口。通過連接以太網控制器實現網絡化功能。在arm中移植了linux操作系統和實現了系統外部硬件接口的驅動程序。由dsp執行計算密集型操作,實現多種信號處理算法,然后將處理后的數字信號通過主機口接口(hpi)與arm通信。再由arm通過以太網控制器將數據傳輸到網絡,實現了遠程控制與監測。
圖1系統總體硬件框圖
3 系統硬件具體設計方案
3.1 arm與dsp的接口設計
ep7312和tms320vc5402連接的接口電路如圖2所示。vc5402通過hpi與arm進行連接。arm先向dsp寫入控制字,設置工作模式,然后將訪問地址寫入地址寄存器(hpia),再對數據鎖存器(hpid)進行讀寫,即可讀出和寫入的存儲單元。主機由兩根地址線a2、a1可以尋址到hpi接口的所有控制寄存器、地址寄存器和數據寄存器;由hbil、hcntl1、hcntl0區分16位數據的高、低字節。當向hbil=0的地址寫入數據時,表示是*個字節,向hbil=1的地址寫入數據表示第二個字節。尋址過程中hcs要為低電平。
圖2ep7312與tms320vc5402的連接
dsp的hpi接口片選信號使用ep7312擴展片選信號ncs4,hpi各個特殊功能寄存器的映射地址如下:
#define hpic0 *(volatile unsigned char*)0x40000000
#define hpic1 *(volatile unsigned char*)0x40000001
#define hpia0 *(volatile unsigned char*)0x40000004
#define hpia1 *(volatile unsigned char*)0x40000005
#define hpid0 *(volatile unsigned char*)0x40000006
#define hpid1 *(volatile unsigned char*)0x40000007
設置好dsp的狀態后,dsp向arm發送中斷,通知arm已將數據準備好,等待arm發中斷,dsp在中斷中對接收的數據進行處理。arm在初始化后,等待dsp發送中斷通知arm數據已經準備好。arm在檢測到中斷后,先判斷中斷是否有效,再從hpi口讀寫數據,在完成向hpi口發送數據后,向dsp發送中斷通知dsp接收數據。arm通過控制端口信號模擬接口時序,來完成對hpi口寄存器的訪問。由于dsp在boot過程中向arm發送了中斷,所以arm在初始化時要清除這個中斷,并且在數據交互之前要設置控制寄存器中的bob位,指示高地址在前還是低地址在前。這一步在程序初始化時由arm來完成。
3.2 arm與以太網控制器之間的通信設計
系統平臺實現了以太網接口。提供了以太網芯片的驅動,支持網絡功能。以太網控制芯片的數據、地址和控制信號與ep7312的總線相連,如圖3所示。片選信號使用ep7312的擴展片選信號ncs2。
圖3 以太網接口原理圖
rtl8019默認的i/o基地址是300h,用到的地址空間為300h~3ffh,因此使用到ep7312的低4位地址線,將rtl8019上的sa19~sa10和sa7~sa5接為地,sa9、sa8接為vcc。rtl8019as使用的是16位數據總線方式,因此,將rtl8019上的iocs16b引腳通過10k的上拉電阻接為vcc;通過io模式讀寫以太網控制器,所以smemrb和smemwb引腳通過上拉電阻接為vcc。
當ep7312向網上發送數據時,先將一幀數據通過遠程dma通道送到rtl8019as中的發送緩存區,然后發出傳送命令;當rtl8019as完成了上一幀的發送后,再開始此幀的發送。rtl8019as接收到的數據通過mac比較、crc校驗后,由fifo存到接收緩沖區;收滿一幀后,以中斷的方式通知ep7312。fifo邏輯對收發數據作16字節的緩沖,以減少對本地dma請求的頻率。
以太網控制器有兩個指針寄存器來控制緩沖區的存儲過程,當前頁面指針curr和邊界指針bnry。curr指向新接收到幀的起始頁面,即接收緩沖環的寫頁面指針;bnry指向讀過的zui后一個頁面,即接收緩沖環讀頁面指針。自定義指針next_page,表示存儲分組緩沖區的邊界,初始值為next_page=bnry,讀取一頁數據后由軟件執行bnry加1,curr自動加1。curr不等于bnry時,表示有新的數據包在緩沖區中,讀取一包的前四個字節,前四個字節并不是以太網數據包的內容。分別表示數據包存放的頁地址和已接收的數據的字節數。如果curr=0,表示讀取出錯,返回null。如果bnry>0x7f,則bnry=0x4c。
4 嵌入式系統軟件設計
4.1 bootloader的設計
該嵌入式系統引入了linux操作系統,可以給系統下的任務提供調度機制,簡化任務中的需求操作,當需求變化時只需要改變任務內容,然后重新和操作系統發布即可。
本系統中ep7312采用的是外部啟動方式,也就是從cs[0]片選的外部norflash啟動,系統啟動后,執行啟動代碼,即初始化cpu、內存控制器以及片上設備,然后配置存儲映射。啟動代碼隨后執行一個引導裝載程序bootloader,將內核從flash中解壓到sram中,然后跳轉到內核的*條指令處執行,內核運行。
bootloader完成從硬件啟動到操作系統啟動的過渡,用于初始化硬件和啟動操作系統。在內核運行之前需要bootloader作為系統驅動程序完成加載內核和一些輔助性的工作,然后跳轉到內核代碼的起始地址并執行。對于該系統來說選擇ep7211所使用的bootloader—shoehorn,然后做一些改動。如調整系統各個寄存器的地址值;設定sdram控制器;調整uart1的波特率等。shoehorn代碼分為host端和target端兩部分,一部分由eth.c、serial.c、shoehorn.c和util.c組成,由這些文件編譯生成host端的可執行文件shoehorn;另一部分由ini.s和loader.c組成,編譯生成一個小于2kb的文件loader.bin,這個二進制文件會被下載到target端的sram中用來引導系統的啟動。通過一系列的主機與開發板之間的握手通信、下載程序的方式使得代碼相對分散,減小開發板上起始代碼的大小,以滿足目標板上下載代碼的限制。
4.2 內核的配置
該嵌入式系統選擇了較成熟穩定的linux-2.4.13版本內核。為了避免修改內核定制代碼
時造成代碼的不穩定和失去代碼的靈活性,可以通過選擇合適的版本內核,修改該配置文件,裁剪不必要的功能,再編譯出符合新配置的內核,得到既滿足應用功能要求同時體積又小的內核,產生一個隱藏文件/usr/src/linux/.config。該文件記錄了對內核具體功能模塊的選擇和配置。
內核配置時,大部分的選項都可以使用缺省值,只有小部分需要根據需求選擇,將與內核關系比較近且經常用到的功能代碼直接編譯進內核;將不經常用到的代碼編譯為可加載模塊,有利于減小內核的長度,增加靈活性。
4.3 驅動程序的設計
在linux操作系統中驅動程序是操作系統內核與硬件設備直接的接口。驅動程序屏蔽了硬件的細節。在應用程序看來硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作。
設備驅動程序可以設計模塊化方式。不必編譯進內核,而是被分別編譯并鏈接成一組目標文件,這些文件可以被載入正在運行的內核,或從正在運行的內核中卸載。可以減少內核的長度,具有很大的靈活性。
4.4 dsp中信號處理算法的實現
多數傳感器對于溫度、濕度、電源的波動等環境因素都存在著交叉靈敏度,產生較大的誤差,測量精度和穩定性都受到一定的影響。在dsp中采用數據融合技術可以消除干擾,提高傳感器的測量精度。數據融合是通過組合,將傳感器數據之間進行相關,以從輸出元素獲得更多的信息。保證在環境干擾變化很大的情況下也可以有較高的測量精度和穩定性。采用軟件方法對傳感器數據融合處理被證明是一種很好的方法。
該系統的網絡功能可以將多個功能相同或不同的嵌入式智能儀器連接在一起組成智能傳感器網絡。每個智能儀器節點都具有數據采集、數據處理和通信的功能。信息融合技術可以將來自多個傳感器的數據進行多級別、多方面、多層次的處理,從而產生新的有意義的信息,而這種新信息是任何單一傳感器所無法獲得的準確度更高的表征客觀環境的信息。這種技術在傳感器網絡中有著舉足輕重的作用。
5 結束語
該嵌入式智能儀器系統的設計,為儀器儀表方便有效的接入以太網提供了很好的解決方案,實現了遠程控制和實時性的數據傳輸。由于采用并發多任務技術處理該嵌入式系統復雜的外部事件,以及控制軟件系統的復雜性,保證了系統的實時性能。該嵌入式系統的軟硬件配置精簡,抗*力符合環境要求;裝配結構便于檢修。這種嵌入式智能儀器系統的實現使嵌入式設計在數據處理及檢測控制領域里得到了很好的應用。
參考文獻:
[1]李明,康靜秋,賈智平.嵌入式tcp/ip協議棧的研究與開發[j].計算機工程與應用,2002,(16):118-121
[2]高玉龍,朱秀珍,張興周.基于arm的家庭智能化系統設計與實現[j].應用科技,2003,(9):32-34
[3]趙偉國,王文海,馮華.嵌入式系統在智能儀表的應用[j].計算機應用,2003,(4):55-57
[4]ep7312 user’s manual.cirrus logic corporation,2000.
[5]tms320c54x dsp enhanced peripherals reference set[z].ti corporation,2000.
全年征稿/資訊合作
聯系郵箱:1271141964@qq.com
免責聲明
- 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
- 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
- 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
2025長三角國際智能儀表/線纜產業博覽會
展會城市:滁州市展會時間:2025-11-11