国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>嵌入式Linux下ARM處理器與DSP的數(shù)據(jù)通信(1)

      直播推薦

      更多>

      企業(yè)動(dòng)態(tài)

      更多>

      推薦展會(huì)

      更多>

      嵌入式Linux下ARM處理器與DSP的數(shù)據(jù)通信(1)

      2008年01月31日 10:14:08人氣:975來(lái)源:浙江啟揚(yáng)智能科技有限公司

      1 引言

      基于ARM核心處理器的嵌入式系統(tǒng)以其自身資源豐富、功耗低、價(jià)格低廉、支持廠商眾多的緣故,越來(lái)越多地應(yīng)用在各種需要復(fù)雜控制和通信功能的嵌入式系統(tǒng)中。

      內(nèi)核源碼開放的Linux與ARM體系處理器相結(jié)合,可以發(fā)揮Linux系統(tǒng)支持各種協(xié)議及存在多進(jìn)程調(diào)度機(jī)制的優(yōu)點(diǎn),從而使開發(fā)周期縮短,擴(kuò)展性增強(qiáng)。作為數(shù)字處理電路,DSP的數(shù)字信號(hào)處理能力十分強(qiáng)大,但對(duì)諸如任務(wù)管理、通信、人機(jī)交互等功能的實(shí)現(xiàn)較為困難。

      如果將這三者結(jié)合起來(lái),即由DSP結(jié)合采樣電路采集并處理信號(hào),由ARM處理器作為平臺(tái),運(yùn)行Linux操作系統(tǒng),將經(jīng)過(guò)DSP運(yùn)算的結(jié)果發(fā)送給用戶程序進(jìn)行進(jìn)一步處理,然后提供給圖形化友好的人機(jī)交互環(huán)境完成數(shù)據(jù)分析和網(wǎng)絡(luò)傳輸?shù)裙δ?,就?huì)zui大限度的發(fā)揮三者所長(zhǎng)。


        
      2 系統(tǒng)結(jié)構(gòu)

      該系統(tǒng)硬件由二部分組成,其中一部分為若干塊DSP板,各自獨(dú)立承接數(shù)據(jù)采集和信號(hào)處理。另一部分為以ARM為核心處理器的CPU板。系統(tǒng)硬件框圖如圖1所示(僅接口部分)。
        
      3 接口硬件部分設(shè)計(jì)

      3.1 HPI接口簡(jiǎn)介

      HPI接口是TI公司新一代、高性能DSP上用以完成與主機(jī)或其他DSP之間數(shù)據(jù)交換的接口,這里主要介紹實(shí)際電路中使用的控制引腳和時(shí)序。
      HCNTL0和HCNTL1為訪問(wèn)控制選擇。用來(lái)確定主機(jī)(ARM)究竟對(duì)TMS320C6711中的哪一個(gè)HPI寄存器進(jìn)行處理。具體功能如表1所列。

      HHWIL:半字節(jié)定義選擇,與HPIC寄存器中的HWOB位進(jìn)行配合可以選擇當(dāng)前傳輸?shù)氖歉甙胱诌€是低半字。低電平是*個(gè)半字,高電平是第二個(gè)半字。

      HCS:選通脈沖(Strobe),與HDS1、HDS2相互配合完成內(nèi)部信號(hào)HSTROBE的生成。邏輯關(guān)系如圖2所示。

      將HDS1、HDS2分別固定為高電平和低電平,這樣HCS就和HSTROBE*一致。
      HSTROBE讀時(shí)序如圖3所示。

      3.2 接口電路

      ARM處理器通過(guò)DSP的HPI接口與DSP進(jìn)行連接的硬件原理如圖4所示(以單板DSP為例)。其中SN74LVTH16245為16位(二個(gè)8位)雙向三態(tài)總線收發(fā)器,主要起總線驅(qū)動(dòng)和方向控制的作用同時(shí)也保證在不對(duì)HPI口進(jìn)行操作時(shí)數(shù)據(jù)總線鎖閉。AT91RM9200為Atmel公司生產(chǎn)的ARM9為核心的處理器,其中引腳D0-D15為數(shù)據(jù)總線,A2-A8為地址總線的一部分,CS3為片選信號(hào)線,當(dāng)ARM對(duì)總線地址范圍為0x40000 0000~0x4FFF FFFF的外部設(shè)備進(jìn)行操作時(shí),會(huì)在該引腳產(chǎn)生一個(gè)片選信號(hào)。同時(shí)該信號(hào)控制SN74LVTH16245的使能端,避免在讀寫其他地址時(shí)對(duì)HPI端口造成影響。TMS320C6711D是TI公司生產(chǎn)的DSP,每秒可以完成15億次浮點(diǎn)運(yùn)算,數(shù)據(jù)處理功能十分強(qiáng)大。引腳D0-D15為數(shù)據(jù)總線。其余端口是HPI接口的控制引腳。

       

      4 驅(qū)動(dòng)程序設(shè)計(jì)

      4.1 Linux驅(qū)動(dòng)程序簡(jiǎn)介

      在Linux操作系統(tǒng)下有二種方式將驅(qū)動(dòng)程序裝入操作系統(tǒng)內(nèi)核:一種是直接將驅(qū)動(dòng)程序編譯進(jìn)內(nèi)核,另外一種是將驅(qū)動(dòng)程序構(gòu)建為驅(qū)動(dòng)程序模塊后采用insmod/rmmod命令將模塊加載內(nèi)核中。由于是在嵌入式系統(tǒng)中進(jìn)行程序開,所以筆者選用了模塊加載方式。這樣,在整個(gè)程序的調(diào)試過(guò)程中不必因?yàn)樾薷哪程幎磸?fù)編譯整個(gè)內(nèi)核,只需編譯驅(qū)動(dòng)程序模塊并重新加載。

      本例中Linux下的驅(qū)動(dòng)程序主要用來(lái)完成文件(Linux把外部設(shè)備也認(rèn)為是文件)的打開、關(guān)閉、讀、寫等操作。也就是對(duì)如下結(jié)合的填充。

      Static struct file_operations fops=
      {open:hpi_open,
      release:hpi_release,
      mmap:hpi_mmap,
      };

      其中,open和release完成設(shè)備的打開和關(guān)閉。mmap為內(nèi)存地址映射操作。因?yàn)椴捎玫氖悄K加載方式,所以還應(yīng)該加上int init_module(void)和void cleanup_module(void)函數(shù),以完成模塊的注冊(cè)和卸載。

      4.2 驅(qū)動(dòng)程序中映射的實(shí)現(xiàn)

      由于驅(qū)動(dòng)程序的內(nèi)存空間是在內(nèi)核空間中,因此首先應(yīng)解決內(nèi)核空間與用戶空間的交互問(wèn)題。這里采用zui直接的方式將內(nèi)核空間和用戶空間起來(lái)實(shí)現(xiàn)映射,即利用remap_page_range內(nèi)核函數(shù)(通過(guò)mmap系統(tǒng)調(diào)用實(shí)現(xiàn))。

      函數(shù)原形如下:

      int remap_page_range(unsigned long virt_add,unsigned long phys_add,unsigned long size,pgprot_tprot);

      函數(shù)的功能是構(gòu)造用于映射一段物理地址的新頁(yè)表。函數(shù)返回的值通常是0或者一個(gè)負(fù)的錯(cuò)誤碼。函數(shù)參數(shù)的確切含義如下:

      virt_add:重映射起始處的用戶虛擬地址。phys_add:虛擬地址所映射的物理地址。Size:被重映射的區(qū)域的大小。Prot:新VMA(virtual memory area)的“保證(protection)”標(biāo)志。具體定義在源泉文件/include/linux/mm.h中。系統(tǒng)調(diào)用MMAP的程序代碼如下:

      static int hpi_mmap(struct file *f,struct vm_area_struct *vma)
      vma->vm_flags|=VM_WRITE;
      if(remap_page_range(vma->vm_start,((0x40000000)),
      vma->vm_end-vma->vm_start,(_pgprot (pgprot_val(pgprot_noncached(vma->vm_page_prot))|
      (L_PTE_WRITE|L_PTE_DIRTY))))) //進(jìn)行映射
      {return -1;} //映射失敗
      return 0;
      }

      結(jié)合硬件結(jié)構(gòu)可對(duì)函數(shù)remap_page_range()分別填充如下參數(shù):

      remap_page_range(vma->vm_start,((0x40000000)),vma->vm_end-vma->vm_start,(__pgprot(pgprot_val(pgprot_noncached(vma->vm_page_prot)) |(L_PTE_WRITE|L_PTE_DIRTY)))))
      其中vma為結(jié)合vm_area_struct,在中定義。

      應(yīng)用中需要注意以下字段:unsigned long vm_flags應(yīng)該使用標(biāo)志VM_RESERVED,以避免內(nèi)存管理系統(tǒng)將該VMA交換出去。因?yàn)橐獙?duì)DSP寫入數(shù)據(jù),所以必須使用標(biāo)志VM_WRITE說(shuō)明對(duì)這一段VMA是允許寫入的。pgport_t vm_page_prot指明了對(duì)VMA的保護(hù)權(quán)限。由于利用CS3對(duì)DSP的HPI接口進(jìn)行控制,所以應(yīng)用pgprot_noncached禁止高速緩沖。

      通過(guò)mmap的構(gòu)建就能夠?qū)?nèi)核空間的數(shù)據(jù)映射到用戶空間去,也就是說(shuō)可以在用戶空間內(nèi)直接對(duì)地址為0x4000_0000的內(nèi)存空間進(jìn)行操作,而該段空間正是DSP的HPI接口所對(duì)應(yīng)的地址。

      在實(shí)際應(yīng)用中,應(yīng)對(duì)CS3的低電平脈寬加以控制,方法是在初始化模塊時(shí)對(duì)ARM的控制寄存器CSR[3]進(jìn)行調(diào)節(jié)。該寄存器的D0-D6確定了ARM外部總線的時(shí)鐘延時(shí)周期,D7為等待周期的使能,D12-D14為數(shù)據(jù)寬度。具體定義如下:AT91_SYS->EBI_SMC2_CSR[3]=0x00003083,即使用16bit數(shù)據(jù)寬度,等待周期為3個(gè)。當(dāng)ARM主頻為180MHz時(shí),CS3低電平脈寬約為150ns。
       

      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉(cāng)儲(chǔ)物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請(qǐng)發(fā)送郵件至:(郵件標(biāo)題請(qǐng)備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)
      智能制造網(wǎng)APP

      功能豐富 實(shí)時(shí)交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號(hào)

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號(hào):gkzhan

      打開抖音 搜索頁(yè)掃一掃

      視頻號(hào)

      智能制造網(wǎng)

      公眾號(hào):智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號(hào)

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618