新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信方法

嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信方法

作者: 時(shí)間:2010-12-15 來源:網(wǎng)絡(luò) 收藏


3.3 驅(qū)動(dòng)程序的內(nèi)核加載方式
在完成了嵌入式Linux驅(qū)動(dòng)程序的編寫測試工作后,下一步就是將編寫好的驅(qū)動(dòng)程序加載到系統(tǒng)內(nèi)核,完成驅(qū)動(dòng)硬件的工作。通常有以下兩種做法:
1)驅(qū)動(dòng)程序直接編譯入內(nèi)核 采用這種方式編譯的驅(qū)動(dòng)程序在內(nèi)核啟動(dòng)時(shí)就已經(jīng)在內(nèi)存中,運(yùn)行時(shí)不需要再自行加載驅(qū)動(dòng),可以保留專用的存儲器空間。
2)驅(qū)動(dòng)程序的模塊加載 采用模塊加載方式的驅(qū)動(dòng)程序?qū)阅K形式存儲在文件系統(tǒng)里,需要時(shí)動(dòng)態(tài)載入內(nèi)核即可,使得驅(qū)動(dòng)程序按需加載,不用時(shí)節(jié)省內(nèi)存,并且驅(qū)動(dòng)程序相對獨(dú)立于內(nèi)核,升級靈活,授權(quán)方式靈活。本文就采用此種方式。
因?yàn)椴捎玫氖悄K加載方式,所以還需要借助兩個(gè)重要的函數(shù)init_module()和cleanup_module(),完成模塊的注冊和卸載。具體源碼可以參見/usr/src/linux/kemel/module.c。在2.3版本以后采用了新的方法命名這兩個(gè)函數(shù),定義exampie_init()代替init_module()函數(shù),example_cleanup()代替cleanup_module()函數(shù)。在程序的最后用下面兩行代碼進(jìn)行聲明:
module_init(S3C2440_HPI_init);
module_exit(S3C2440_HPI_exit);
3.4 接口具體應(yīng)用的設(shè)計(jì)方法
利用編寫好的驅(qū)動(dòng)程序,用戶可以編寫出不同的應(yīng)用接口程序。下面給出自增寫的方法:
根據(jù)圖2的接口電路,A2,A3,A4,A5對應(yīng)的接口分別是HCNTI0,HCNTL1,,HHWIL,當(dāng)自增模式寫低半字時(shí),它們的值應(yīng)該分別是:HCNTL0=0,HCNTL1=1,,HHWIL=O,即A[5:2]=0010,在HPI_VA_BASE上增加偏移就可以對控制口線控制。所以自增寫第一半字時(shí),加00000100即:0x04,當(dāng)自增模式寫高字節(jié)時(shí),它們的值應(yīng)該是HCNTL0=0,HCNTL1=1,,HHWIL=1,即A[5:2]=1010。所以自增寫第二半字時(shí),加00101000即:0x28。對HPI控制寄存器寫地址用如下宏定義:

另外,在自增寫過程中,對于作為接收端的DSP處理器,需要明確:1)是否準(zhǔn)備就緒,可以進(jìn)行寫入數(shù)據(jù),HPI-16中可以通過HPIC寄存器查詢HRDY的狀態(tài),當(dāng)HRDY為1時(shí),即表明HPI已經(jīng)準(zhǔn)備就緒;2)指明要寫數(shù)據(jù)的區(qū)域址,即dsp_add_w=(hpi.hpi_dsp_add),這是從應(yīng)用程序傳過來的參數(shù),以確定寫數(shù)據(jù)區(qū)域的起始地址。自增寫的代碼和注釋如下:



4 結(jié)束語
通過一個(gè)嵌入式機(jī)器視覺系統(tǒng)工程實(shí)例,闡述了嵌入式系統(tǒng)中,用ARM+DSP的雙核結(jié)構(gòu)加載Linux操作系統(tǒng),通過HPI接口進(jìn)行通信和交換數(shù)據(jù)的設(shè)計(jì)方法,設(shè)計(jì)了HPI接口連接的硬件電路和Linux環(huán)境下的驅(qū)動(dòng)程序,描述了該接口的具體應(yīng)用設(shè)計(jì)方法。
ARM+DSP的雙核系統(tǒng)是新型的嵌入式機(jī)器視覺系統(tǒng)構(gòu)建方法,而這里設(shè)計(jì)的通過HPI接口交換數(shù)據(jù)的雙機(jī)通信方法,在機(jī)器視覺系統(tǒng)項(xiàng)目中被成功地應(yīng)用證明,傳輸數(shù)據(jù)速度達(dá)到10 Mb/s,能夠滿足嵌入式系統(tǒng)對實(shí)時(shí)性的要求,具有廣闊的應(yīng)用前景。但在應(yīng)用中需要注意的是:HPI接口的讀寫過程都涉及到公共的寄存器(HPI的控制寄存器、地址寄存器和數(shù)據(jù)寄存器)及HPI接口提供給主機(jī)(host)端讀寫的內(nèi)存的相關(guān)操作,所以在特定的應(yīng)用程序、驅(qū)動(dòng)程序的設(shè)計(jì)中,一定要用信號量等互斥機(jī)制加以保護(hù),否則,會出現(xiàn)讀寫錯(cuò)亂的現(xiàn)象。


上一頁 1 2 3 下一頁

關(guān)鍵詞: 收發(fā)器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉