(计算机系统结构专业论文)基于arm与fpga的高速数据采集技术研究.pdf_第1页
(计算机系统结构专业论文)基于arm与fpga的高速数据采集技术研究.pdf_第2页
(计算机系统结构专业论文)基于arm与fpga的高速数据采集技术研究.pdf_第3页
(计算机系统结构专业论文)基于arm与fpga的高速数据采集技术研究.pdf_第4页
(计算机系统结构专业论文)基于arm与fpga的高速数据采集技术研究.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机系统结构专业论文)基于arm与fpga的高速数据采集技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要:本文研究基于a r m 与f p g a 的高速数据采集系统技术。论文完成了 a r m + f p g a 结构的共享存储器结构设计,实现了a r m l i n u x 系统的软件设计, 包括触摸屏控制、l c d 显示、正弦插值算法设计以及各种显示算法设计等。同时 进行了信号的高速采集和处理的实际测试,对实验测试数据进行了分析。 论文分别从软件和硬件两方面入手,阐述了基于a r m 处理器和f p g a 芯片的 高速数据采集的硬件系统设计方法,以及基于a r m l i n u x 操作系统的设备驱动程 序设计和应用程序设计。 硬件方面,在f p g a 平台上,我们首先利用乒乓操作的方式将一路高速数据 信号转换成频率为原来频率1 4 的4 路低速数据信号,再将这四路数据分别存储到 4 个f i f o 中,然后再对这4 个f i f o 中的数据拼接并存储在f p g a 片上的双端口 双时钟r a m 中,最后将f p g a 的双端口双时钟r a m 挂载到a r m 系统的总线上, 实现了a r m 和f p g a 共享存储器的系统结构,使a r m 处理器可以直接读取这个 双端口双时钟的r a m 中的数据,从而大大提高了数据采集与处理的效率。在采样 频率控制电路设计方面,我们通过使f o 的数据存储时钟降低为标准状态下的1 n 实现数据采集频率降为标准状态的1 n ,从而实现了由f p g a 控制的可变频率的数 据采集系统。 软件方面,为了更有效地管理和拓展系统功能,我们移植了a r m l i n u x 操作系 统,并在s 3 c 2 4 1 0 平台上设计实现了基于l i n u x 操作系统的触摸屏驱动程序设计、 l c d 驱动程序移植、自定义的f p g a 模块驱动程序设计、l c d 显示程序设计、多线 程的应用程序设计。应用程序能够控制f p g a 数据采集系统工作。 在前端采样频率为1 2 5 m h z 情况下,系统可以正常工作。能够实现对频率在5 姗z 以下的信号波形的直接显示;对5 m h z 至4 0 m h z 的信号,使用正弦插值算法进行处 理,显示效果良好。同时这种硬件结构可扩展性强,可以在此基础上实现8 路甚 至1 6 路缓冲的系统结构,可以使系统支持更高的采样频率。 关键词:高速数据采集;嵌入式系统;l i n u x ;a r m ;f p g a ;l i n u x 设备驱动程 序;共享存储器; 分类号:t p 2 7 4 2 ;t p 3 1 6 8 1 a b s t ra c t a b s t r a c t :i nt h i sp a p e rw eh a v er e s e a r c h e do nd e s i g na n dr e a l i z a t i o no fh i g h s p e 村d a t aa c q u i s i t i o nt e c h n o l o g y w ed e s i g n e das h a r e dm e m o r ys t r u c t u r eb a s e do n a r m & f p g a w ea c c o m p l i s h e dt h es y s t e ms o f t w a r eu n d e rl i n n xe n v i r o m e n t , i n c l u d i n gt h et o u c k s c r e e nc o n t r o l ,l c dd i s p l a y , s i n ei n t e r p o l a t i o na l g o r i t h md e s i g na n d v a r i o u so f d i s p l a ya l g o r i t h md e s i g n w eh a v et e s t e dt h eh i g h - s p e e dd a t aa c q u i s i t i o na n d p r o c e s s i n gs y s t e m , a n da n a l y z e dt h et e s td a t a w ed e s c r i b eo u rs y s t e mi nt w ow a y s o n ei st h eh a r d w a r ed e s i g n , t h eo t h e ri st h e d e v i c ed r i v e rd e s i g na n da p p l i c a t i o np r o g r a md e s i g nb a s e do na r m l i n u xo s i nt h eh a r d w a r ed e s i g n , o nt h ef p g ac h i p , f i r s tw ec o n v e r t e do n ec h a n n e lo f h i g h s p e e d d a t a i n t o f o u rc h a n n e l s o f l o w - s p e e d d a t a w h i c h f r e q u e n c y i s a q u a r t e r o f t h e o r i g i n a lf r e q u e n c yw i t ht h ep i n g - p o n go p e r a t i o r ls e c o n dw es t o r e de a c hc h a n n e l o f d a t a i naf i f o t h i r dw er e c o m b i n e dt h ed a t ai nt h ef i f o sa n ds t o r e dt h e mi nad o u b l e - p o r t r a m l a s tw ec o n n e c t e dt h er a mt ot h eb u so ft h ea r m s y s t e m , w h i c hi sas h a r e d m e m o r yw ed e v e l o p e d a r mp r o c e s s o rc 趾r e a dt h ed a t ai nr a me f f i c i e n t l y w e d e s i g n e dt h es a m p l i n gf r e q u e n c yc o n t r o lc i r c u i tb yt h ef p g a ,b yc h a n g i n gt h ed a t a s t o r a g ef r e q u e n c yo f t h ef i f ow ec o n t r o l l e dt h ed a t aa c q u i s i t i o nf l e q u m c y i nt h es o f t w a r ed e s i g n , a tf i r s tw ep o r t e dt h ea r m l i n u xo n t oa r mf o rm o r e e f f e c t i v ea d m i n i s t r a t i o na n ds y s t e m u p g r a d e t h e nw ed e s i g n e dt h et o u c h s c r c e n d e v i c e d r i v e r , l c dd e v i c ed r i v e r , f p g ad e v i c 圮d r i v e r , l c dd i s p l a yp r o g r a m a n d m u l t i t h r e a d i n ga p p l i c a t i o n t h es y s t e mc a l lw o r ks t a b l yw i t l it h es a m p l i n gf r e q u e n c y1 2 5 m h z i t 啪d i s p l a y n o r m a l l yt h ew a v e f o r mo f t h es i g n a l w h i c hf r e q u e n c y i sb e l o w5 m h z a n dw e 锄u s e t h es i n ei n t e r p o l a t i o na l g o r i t h mt o p r o c e s sa n dd i s p l a yt h eh i g hf r e q u e n c ys i g n a l , w h i c hf r e q u e n c yi sb e l o w4 0 m h z t h i sh a r d w a r es t l - u c t u r ei sah i g h l ys c a l a b l es y s 【e m s t r u c t u r e , w cc a na c h i e v e8c h a n n e l sa n de v m1 6c h a n n e l sf i f ob u f f e rs y s t e ms h u c t u r e , w h i c hw i l lm a k et h es y s t e ms u p p o r th i g h e rs a m p l i n gf r e q u e n c y k e y w o r d s :h i g hs p e e dd a t aa c q u i s i t i o n ;e m b e d d e ds y s t e m ;l i n u x ;a r m ;f p g a ; l i n u xd e v i c ed r i v e r ;s h a r e dm e m o r y c l a s s n o :t p 2 7 4 2 ;t p 3 1 6 8 1 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:j 丝 签字日期:少7 年,。月,日 导师签名k 名, 签字日期:御年2 月2 日 i 独创性声明 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除 了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也 不包含为获得北京交通大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的 同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名:如睡签字隰矽7 年 瑚 致谢 本论文的工作是在我的导师高金山副教授的悉心指导下完成的,高金山副教 授严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三 年来高金山老师对我的关心和指导。 感谢所有在校期间的授课老师,他们耐心细致的讲解使我积累了较为丰富的 专业和理论基础。 在实验室工作及撰写论文期间,董晨、陈庆伟等同学对我论文的研究工作给 予了热情帮助,在此向他们表达我的感激之情。 1 引言 随着信息化时代的到来,各种电子设备的应用日益广泛,而且各种电子设备 越来越复杂。电子设备的研制与维修对电子测试设备提出了更高的要求。作为传 统电子测试设备的示波器也发展迅速。当前,数字存储示波器( d i g i t a ls t o r a g e o s c i l l o s c o p e ) 技术已经成得到了广泛的应用。数字存储示波器的基本思想就是通过 先进的数字化测试技术,高速采样和高精度模数变换,将信号波形数字化然后 对数字结果进行存储、处理并显示。数字存储示波器在波形的记录、分析和比较 方面,都比传统的模拟示波器有很大的改进。它使得示波器不仅能显示信息,而 且能够将信息存储起来便于分析因此,数字存储示波器在科学研究和工程设计 中的应用越来越广泛。 目前,数字存储示波器已经得到了很好的应用和发展,随着数字化测试技术 的进步,数字存储示波器也朝着高速度、高精度、高集成度、低功耗方向迅速发 展。为适应野外作业和生产现场测试需要,手持式数字存储示波器无疑是最好的 选择,而目前市场上较为成熟的有美国t e k t r o n i x 公司的便携式数字存储示波器系 列以及f l u k e 公司的手持式示波表系列等,采样频率1 0 0 m h z 以上的产品价格都在 几万元以上,非常昂贵。国内的一些厂商也介入了手持数字式波表这一领域,其 中厦门利利酱等公司已经有成熟的产品上市,这些公司的产品采样率都在1 0 0 m h z 左右。 数字存储示波器是将波形存储在在存储器中。存储时间可以无限长。因此, 数字存储示波器是一种既具有实时观察,又具有波形存储能力、精确度高、操作 简单、可以通过计算机进行程序自动测量的高智能化示波器。其组成包括控制、 取样存储、显示。控制部分通常包括键盘、c p u 、存储器等;取样存储部分由a d 和d a 转换器组成;显示部分由l c d 组成。而手持式的数字存储示波器不仅要具 有数字存储示波器的功能,同时还需要有体积小、低功耗等特点。所以手持式的 数字存储示波器的设计难度更大,设计难点包括存储速度、处理速度、功耗等。 本文针对这些方面,研究了具有高存储速度、高处理速度、低功耗的高速数据采 集系统。 1 1 高速数据采集系统概述 1 1 1 硬件部分 北京交通大学硕士学位论文 本系统的硬件结构采用是一个a r i v l + f p g a 的架构,其中充分利用了f p g a 的并行特性,采用乒乓原理进行前端设计,同时又利用了a r m 低功耗高性能比的 特点,将采集传入的数据在a r m 平台上加以处理和显示,从而在较低频率的a r m 平台上实现了对高速数据的快速但低功耗的采集与显示。 本系统最大的特点是将f p g a 系统作为一个外设挂载到了a r l v i 的总线上,使 a r m 处理器可以直接访问f p g a 的片上r a m 和寄存器中的数据,实现了f p g a 与a r m 共享存储器的系统结构,从而使数据采集及处理的效率有了大幅度的提 高。 最后我们系统还使用了l c d 和触摸屏等设备,系统使用l c d 显示波形,用户 通过触摸屏来对系统进行控制。 1 1 2 软件部分 本文中,因为考虑到未来系统的便于扩展,存储资源的良好管理,应用程序中 多线程的管理和相互通讯等因素,引入了a r m l i n u x 嵌入式操作系统。通过对操 作系统的实时性、资源占用量、执行性能、可靠性,移植性等多方面的分析比较, a r m l i a u x 比w i n c e 占用更少的系统资源,同时它最大的优势就是开源性。同时 可以看出,本系统使用了较多的内存映射,由于 t c l i n u x 对内存的访问是直接的, 即它对地址的访问不需要经过m m u ,而是直接送到地址线上输出。所有程序中访 问的地址都是实际的物理地址,;t c l i n u x 对内存空间不提供保护。所以为了系统的 可靠性,我们选择了a r m l i n u x 操作系统。 在此基础上。使用了c r a m f s 根文件系统,并且系统中针对l c d 和触摸屏等 设备编写了l i n u x 下的设备驱动程序,同时为了提高系统的响应速度,我们还设计 的多线程的应用程序。 1 2 论文主要内容 本文研究基于a r i e l 平台的,针对2 5 0 m i z 采样频率以下的高速数据采集和 显示的嵌入式系统设计与开发。其基本功能是利用前端f p g a 并行处理的优势结 合a r m 的低功耗高性能特点,构造一个高速的数据采集系统整个系统在l i n u x 操作系统和应用程序的管理和控制下,完成了对信号的采集、存储、处理、显示 等功能,并且设计了交互式的控制方式,可以调节信号采样频率、波形的显示方 式等。 本系统具有低功耗、造价低、性能高以及可扩展性强等特点,可以用于工业、 2 引言 科学研究、教育等领域。 论文的主要内容包括以下几方面 第一,介绍f p g a 数据采集系统,利用乒乓操作技术解决了高速数据的采集 问题;利用存储器小端存储的特点解决了高速数据的存储问题。 第二,第二,介绍了l i n u x 设备驱动程序的基本概念及设计方法,并设计了触 摸屏驱动程序以及l c d 驱动程序; 第三,研究了基于f r a m e b u f f e r 机制的l c d 的显示问题,并实现了波形的显 示以及对波形进行调幅、变频、移动等操作; 第四,研究了数据频率在采样频率l 3 以下的时域波形显示问题,并实现了正 弦插值算法,系统可以在采样频率为1 2 5 m h z 时得到频率4 0 m h z 左右 的信号波形 2 高速数据采集系统设计方案 高速数据采集系统的设计主要分为硬件和软件设计,在硬件上以a r m 作为系 统控制和数据处理,f p g a 作为数据采集、预处理和存储。考虑到未来系统便于扩 展,存储资源的良好管理,应用程序中多线程的管理和相互通讯等因素,软件上使 用了a r m l i n u x 操作系统。 2 1 系统功能描述 系统以a r m + f p g a 嵌入式系统为架构,将高性能s a m s u n g 的$ 3 c 2 4 1 0 a r m 9 嵌入式处理器与a l t e r a 的f p g a 结合的高速数据采集及处理系统。与单独使用 a r m 处理器相比,我们的系统具有更高的数据采集频率以及可扩展性。系统设计 需要实现的基本功能是: 1 ) 利用前端a d c 将高速模拟信号转换成数字信号之后,分成两路交替输出 至f p g a 模块; 2 ) 在f p g a 中,对数据进行缓冲后存入f p g a 上的一块双端双时钟的r a m , 并作阈值比较。 3 ) 当采集到的数据达到或超过阈值要求( 即当存储器中的新数据达到一定的 数量、在系统中我们将阈值设置为存储器满) 的时候,触发相关信号中断, 通知a r m 处理器有新数据到达,由a r m 端来控制数据采集系统的运行 并处理新数据。 4 ) 在中断处理程序中a r m 处理器对数据采集系统作出相应,然后通过应用 程序进行数据处理,最后在l c d 上显示出来,并通知f p g a 进行下一次 数据采集。 具体流程图如图2 一l 所示。 从效率、成本和实现难易程度的角度考虑,软硬件功能的划分如下:高速数 据的采集、缓冲、阈值比较、双端双时钟的r a m 存储等功能都利用硬件f p g a 搭 建模块来完成,而硬件资源管理和数据处理和显示则由软件编程实现。 4 开始 启动数据采集 4 路f i f o 缓冲 徽d 阈值 输出存储到双端口r a m 中并_ ) j 做阈值作比较,j 、亍甲町嘲但 大于等于中断闷值 向a r m 发出中断信号 中断程序设置标志位并通 知用户数据处理进程 读取用户控制信息 读取r a m 中信号数据 恨据用户控制信息调月 处理算法 i 调用l c d 画点程序 显示波形 (a)数据采集(b)数据处理 图2 - 1 系统功能流程 f i g u r e2 - 1 f l o w c h a r to f s y s t e m 向n c 血m 2 2 硬件功能描述 硬件部分包括了前端的a d c 、利用f p g a 搭建的采集模块、a r m 平台,需 要完成的功能主要包括下面几个方面: 1 ) 对高频模拟信号进行模数转换,将转换后的数字信号,分成两路交替输出 至f p g a 缓冲模块; 2 ) f p g a 利用乒乓操作方式对数据进行2 分频缓冲之后,存入片上的一块双 端双时钟r a m 之中;其中用以缓冲的4 个f i f o 大小都为6 4 b y t e ,位宽 为8 b i t ,r a m 大小为4 k b ,位宽为3 2 b i t 。当需要采集大量数据的时候, 可以扩展r a m 的容量。 3 ) 每个时钟同时从4 路f i f o 弹出4 个8 b i t 的值,拼接成3 2 b i t 的长字,并 行放入用以存储数据的r a m 之中,同时根据r a m 的写地址信号进行阈 北京交通大学硕士学位论文 值判断( 阈值一般设置为r a m 的最高地址,当写地址信号的值为r a m 地址的最高地址时,表明r a m 已满) ,超过阙值后向a r m 发出中断信号。 4 ) a r m 接收中断后通知用户进程读取、处理并驱动l c d 显示。 2 3 软件功能描述 软件部分主要包括了a r m l i n u x 内核、r o m f s 文件系统、i r q 中断处理程序、 f p g a 模块驱动程序、l c d 驱动程序以及触摸屏驱动程序等部分,各自分别实现 下述的功能: 1 ) a r m l i n u x 内核和文件系统管理各类硬件和软件资源,便于后续系统功能 的扩充和升级。例如,利用a r m l i n u x 对l c d 、前端f p g a 、内存资源 和上层应用程序运行等等进行管理。 2 ) f p g a 模块驱动程序最主要的是实现虚拟内存映射功能,因为在用户进程 空间中不可以访问设备的地址空间。通过内存映射机制,用户进程才可以 直接访问f p g a 的数据r a m ,大大简化了系统结构,节省了数据传递的 时间。 3 ) 触摸屏驱动实现用户与系统的交互,改变波形的显示方式,并且通过f p g a 驱动程序用户进程可以实时调整采样频率,数据放大倍数等 4 1 用户进程通过l c d 驱动程序显示波形数据,并且基于f r a m e b u f f e r 机制的 l c d 还为以后系统移植q t e m b e d d e dg u i 打下了基础。 5 ) 主程序通过各个驱动程序访问设备,并执行数据处理算法及波形显示算法 等相对复杂的代码。 6 3a r m 9 + f p g a 硬件结构设计 系统的硬件结构主要由f p g a 系统和a r m 系统两部分组成。其中a r m 平台 我们选择的是s a m s u n g 的$ 3 c 2 4 1 0 ,硬件系统设计的重点是基于f p g a 的高速数 据采集系统设计和f p g a 与a r m 共享存储器设计。 3 1 系统硬件结构框图 图3 1 表明了整个系统硬件层的体系结构关系,数据采集部分的时钟由时钟控 制单元控制,这也是f p g a 数据采集的核一f i , 控制块。数据存储部分以及f p g a 与 a r m 平台的结构都是由r a m 控制块实现的。具体的功能及实现方式都会在后面 模块具体设计中进行阐述 图3 - 1 系统硬件架构图 f i g u r e3 - 1s y s t e ma r c h i t e c t u r ed i a g r a m 3 2 硬件平台搭建及模块设计 为了实现2 2 中提出的硬件功能设计和图3 - 1 所表示的硬件结构图,采用了 以下几个器件来完成硬件结构的搭建工作。 3 2 1 前端高速a d c ( 模数转换器) 该器件是a d 公司的a d 9 4 8 1 芯片,如图3 2 所示。a d 9 4 8 1 是一种采样精度 为8 b i t ,最高采样频率达2 5 0 m h z 的a d c 转换芯片。其优点之一,就是带有复用的 c m o s 输出以便于很容易地连接到现场可编程逻辑阵列( f p c a ) 或者标准逻辑电 7 路。为了降低a d c 的成本和功耗,a d 9 4 8 1 内部包含了一个参考电源和采样保持 电路,用户只需要提供一个3 3 v 的电源电压和一个差分解码时钟即可驱动芯片正 常工作。 a d 9 4 8 1 的模拟输入是一个差分缓冲,为了达到最好的动态效果,在v i n + 和 v i n - 两个模拟输入端口的阻抗需要匹配。另外,a d 9 4 8 1 还针对外部定时信号和多 个a d c 同步等应用,提供了两个数字输入端1 :3 。经过前端变压器调整之后,该a d c 实际输入信号电压峰峰值最大不可超过1 v 。 作为一款新型的高速低功耗的a d c ,a d 9 4 8 1 内部采用了流水线的结构,在 实现高速的前提下保证了采样精度。输出数据由两个输出口( p o r t a 和p o r tb ) 交替输出,每一路的输出频率为最高为1 2 5 m h z ,相位差为1 8 0 。a d 9 4 8 1 的数字 输出与 i t i c m o s 兼容。 在这里,该器件主要实现的功能是将高速模拟信号转换成为数字信号,然后 分两路传入f p g a 中,同时提供对应通路的时钟信号输出。 f u n c r i o n l8 l o c kd i g r a m 图3 - 2a d 9 4 8 1 结构图 f i g u r e3 - 2 f u n c t i o n a lb l o c kd i a g r a m 图3 - 3a d 9 4 8 1 输出时序图 f i g u r e3 - 3 t i m i n gd i a g r a m s 3 2 2f p g a 平台与功能模块设计 a l t e r a 公司的s t r a t i x 开发板是一个强大的f p g a 平台,平台的具体器件型号为 e p l s i o f 7 8 0 c 6 ,该器件集成了1 0 5 7 0 个l e s ( 1 0 9 i ce l e m e n t s ) ,可以稳定地工作在 4 0 0 删z 的频率之下。另外,性能良好并且种类繁多的i pc o r e 资源及强大的q 岫s 6 0 开发环境,可以帮助我们更快更有效地实现硬件关键模块的功能设计。 f p g a 最显著的特点之一是其并行特性,结合乒乓原理,我们利用v m i l o gh d l 语言和q u m u si i 提供的口c o r e ,设计了一个4f i f o 结构,对高速数据进行缓冲, 然后将4 个8 b i t 的f i f o 输出数值拼接成3 2 位之后放入一个双端双时钟的r a m , 同时通过检测r a m 的写地址信号线以判断r a m 写入数据量是否超过阈值,如果 是的话则产生a r m 平台的外部m q 中断信号,然后a r m 通过i a n u x 下的f p g a 驱动程序处理r a m 中数据。 f p g a 数据采集系统充分利用f p g a 在并行处理和时序逻辑设计方面的优势, 利用乒乓操作方式达到用低速模块处理高速数据流的效果。数据采集模块包括数 据缓冲和数据存储两部分,主要的时序如图3 - 4 ,f i f o 时钟信号如图3 - 5 。 图3 - 4数据采集模块数据流 f i g u r e3 - 4 d a t af l o wo f d a t aa c q u i s i t i o nm o d u l e 1 数据缓冲 数据缓冲部分的作用是将高速数据信号分成4 路低速数据,并写到4 个f i f o 中。构建4 个先进先出缓冲器f i f 0 1 f i f 0 4 ,以乒乓操作模块的方式将a d 9 4 8 1 的输出信号分别存储到4 个f i f o 中。其中p o r ta 对应的两个数据缓冲区分别为 f i f 0 1 和f 0 3 ,p o r tb 对应的两个数据缓冲区分别为f m 0 2 和f i f 0 4 9 北京交通大学硕士学位论文 位宽为8 位的f 0 1 - 4 组成数据缓存。它们具有同频不同相的写时钟信号, 并且具有相同的读时钟信号f n :or d c l k 。 由a i ) 9 4 8 1 时序图和数据缓冲的输入时序图可以看到,数据采集启动后数据缓 冲模块f i f 0 1 一f i f 0 4 中存储数据分别为n ,n + i ,n + 2 ,n + 3 时序控制模块限 定了每次启动后,数据都是从f i f 0 1 开始存放,以满足顺序读取的要求。 利用l j ) 9 4 8 1 提供的数据输出时钟d c o + 和i ) c o - ,产生数据缓冲时钟信号,如 图3 - 5 。信号f i f 0 1 - 4 分别对应数据缓冲器的数据输入时钟w r c l k l 一4 ,如图3 4 。 当启动一次数据采集时,在d c o + 第一个上升沿( h i ) 9 4 8 1 输出第一个有效数据) , 开始产生数据缓冲器的输入时钟信号,保证有效数据顺序存储到各个缓冲器中。 图3 5数据缓冲器输入时钟时序图 f i g u r e3 - 5 蛳t i m i n gd i a g r a mo f d a t ab u f f e r 2 数据存储 数据存储部分的作用,是将前端数据缓冲部分的4 路数据信号,恢复成原来 采样信号的顺序,即将4 路8 位信号拼接成一路3 2 位信号,并保持其正确的顺序, 如图3 - 4 所示。 在每个f n :o _ r d c l k 上升沿,同时从f i 7 0 1 4 中读取8 位数据,并拼接成3 2 位数据,存入一个3 2 位位宽的双时钟双端口r a m 中。r a l i 的写时钟r a mw r c l k 与 f i f o 的f i f o _ r d c l k 是同频信号。由于f i f o 时钟与输出之间存在有延迟( t o o ) , 所以在设计中采用了把f n :o _ r d c l k 相位向后偏移一定相位的时钟信号作为 r a m _ _ w r c l k 的方法,以避免产生竞争冒险( 设计中使用了图3 - 5 所示的f i f 0 1 作为 f l f or d c l k ,f i f 0 2 作为r h m _ w r c l k ) 。 在存储数据时,r 埘采用小端结构。每写入一个字长( 4 个字节) 的数据时, 沁 只需将f i f 0 1 - 4 的输出分别连到r 埘的第一到第四个字节,如图5 所示。f i f 0 1 存储到一个字的低8 位,而f i f 0 4 则存储到了同一个字的高8 位,使r 删中数据 顺序与采集的数据顺序相同。 数据存储控制模块采用中断方式进行数据流控制,当f i f o 缓冲器中存储的数 据达到一个阈值( 可设定,本系统阈值为3 2 字节,f i f o 的容量6 4 字节) 时,控 制模块从缓冲区读出数据并存储到r a m 中。当数据存储器r a m 中的数据量达到一 个阈值时( 本系统r a m 容量为4 k 字节。阈值设置为4 k ,也可以设置小于r 枷容量 的其它值) ,控制模块向c p u 发出数据处理中断请求,c p u 通过总线直接访问r a m 。 理论上当f i f or d c i k - - c l k 4 时( c l k 为采样时钟) ,信号的存储速度与采集 速度相等,此时f i f o 缓冲区所存储的数据量是不变的。如果f i f or d c l k c l k 4 时则会造成缓冲区频繁的发出空中 断,所以系统设计时令f i f or d c l k = c l k 4 。对于采样频率为a d 9 4 8 1 的最高频率 2 5 0 m h z 时,4 路缓冲器中每一路只需工作在6 2 5 1 - l z 时钟频率下。同时为了便于 观察低频数据,设计还实现了可编程采样频率,通过软件设置f p g a 的时钟发生 模块寄存器的值,可将f i f o 的写时钟信号进行2 分频( o ( n = 7 ) ,从而实现数据采 样的2 。分频,图3 - 5 所示为8 分频和不分频时候的时钟信号。其原理是通过降低 f i f o 的写时钟频率,到达降低数据存储的频率,从而实现改变采样频率的功能。 其中c u 曲是a d 9 4 8 1 的数据输出时钟( 如图3 - 3 中的c l k + 或者e l k - ) ,c o u t a l 、 o o u t b l 、c o u t a 2 、c o u t b 2 、分别代表f i f 0 1 f i f 0 4 的数据输入时钟。 当f p g a 采集到数据之后,a r m 通过总线访问这些数据,a r m 总线信号与 f p g a 接口为图3 - 1 所示的r 心控制模块,它同时也是f p g a 数据采集系统主要控 制块。它的主要功能是: 1 ) 内部包含一个1 6 位的f p g a 系统控制寄存器,其功能如表3 - 1 。a r m 通 过驱动程序向其中的0 到7 位写入特定的值来改变采样频率,如图6 。c o n 为控制寄存器的值,可以看出采样时钟发生变化。 c o n t r o l _ r e g 位描述初始态 频率调节 【7 :o 】设置数据采集系统的时钟分频。只能有 1 1 位为1 ,第1 1 位置1 表示2 “分频。 保留 【1 3 :8 】 0 清空缓冲区 【1 4 】下降沿有效( 先写入1 再写入0 ) 。 0 停止启动【1 5 】 0 :启动0 f p g a 1 :停止 表3 - 1 f p g a 控制寄存器 t a b l e3 - 1 c o n t r o lr e g i s t e r 2 ) 为f p g a 的数据存储r 埘和控制寄存器与a r m 总线提供接口逻辑;当 a r m 系统读取r a m 中的数据时,r a m 的数据输出总线和读地址总线直接连 接到a r m 总线上;当a r m 系统向f p g a 的控制寄存器写入数据时,r a m 的数据输入总线和写地址总线直接连接到a r m 总线上;当f p g a 将采集 到的数据存储到r 枷中时,r a m 的数据输入总线和写地址总线由f p g a 控 制模块控制,此时数据输入总线和写地址总线不与a r m 总线连接。 3 ) 控制数据从f i f o 缓冲区输出,将数据进行拼接并存储到r a i i 中。 3 2 3a r m 开发平台系统结构 a r m 平台包括:s 3 c 2 4 1 0 芯片、6 4 ms d r a m 、6 4 mn a n df l a s h 、6 4 0 x 4 8 0 l c d 显示屏、触摸屏、总线扩展板等,系统结构框图如图3 - 6 。 $ 3 c 2 4 1 0 微处理器在高性能和低功耗特性方面提供的性能,具有以下特点: 5 级整数流水线指令执行效率更高; 提供1 i m i p s 删z 的哈佛结构; 支持3 2 位a r m 指令集和1 6 位t h u m b 指令集: 支持3 2 位的高速加a 总线接口; 全性能的删支持w i n d o w sc e 、l i n u x 、p a l m0 s 等多种嵌入式操作系统; 支持数据c a c h e 和指令c a c h e 具有更高的指令和数据处理能力; 好u 支持实时操作系统; 图3 - 6a r m 平台结构框图 蜀9 1 种3 - 6 觚址把c l i l 坤o f a r mp l a t f o r m 1 2 3 3 共享存储器的结构设计 3 3 1 $ 3 c 2 4 1 0 存储控制器简介 $ 3 c 2 4 1 0 存储控制器提供访问外部存储器所需要的存储器控制信号,$ 3 c 2 4 1 0 的存储器控制器主要特性有: 支持大d , 端访问方式( 通过软件选择) ; 8 个存储器b a n k ,每b a n k 有1 2 8 m 字节; 除b a n k 0 只能为1 6 3 2 位宽外,其他b a n k 都具有可编程的访问大4 , ( 8 1 6 3 2 位宽) 。 所有b a n k 访问周期都是可编程的; 最后一个b a n k 的起始地址是可调整的,最后两个b a n k 的大小是可编程的; 总线访问周期可以通过插入外部w a i t 来延长。 支持s d r a m 的自刷新和掉电模式。 3 3 2 共享存储器结构 共享存储器结构是指f p g a 的数据采集系统与a r m 系统共享同一个物理存储 器,f p g a 将采集到的数据存储到一块双端双时钟的片上r a m 中,这块f p g a 的片 上r a m 挂接到$ 3 c 2 4 1 0 的存储器总线上,$ 3 c 2 4 1 0 通过存储控制器可以访问这部 分存储空间。这种结构下相当于将采集到的数据直接存储到$ 3 c 2 4 1 0 的系统内存 中,从而节省了数据传输的时间,大大提高了系统的效率。其结构如图: 地址线卜 地址总线 1 f p g a 高 n 速数据采 f p g a 片 s 3 c 2 4 1 0 集缓冲器 入 上存储器 卜 数据线 数据总线 图3 7 共享存储器结构框图 f i g u r e3 - 7 t h es h a r e dm e m o r ys t r u m 由图中总线数据流方向可以看出,共享的f p g a 片上存储器对于数据采集系 统端来说是一块只写( w r i t e - o n l y ) 的存储器,对于a r m 端来说是一块只读的存储器 ( r e a d - o n l y ) 。这部分存储空间不会受到a r m l i n u x 操作系统的写保护,它里面的数 据可能被f p g a 数据采集部分所改写。所以系统中对这部分空间实现数据内容的 北京交通大学硕士学位论文 同步是十分关键的。第一,$ 3 c 2 4 1 0 端必须严格控制f p g a 数据采集的开始与中 止,在数据被处理期间不应当同时进行数据采集,以免数据被覆盖:第二,由于 系统并不能发现这块存储空间数据是否已被更改,所以在软件部分应当将这部分 内存标记为无缓冲( n o n - c a c h e d ) 或者易失状态( v o l a t i l e ) 。 3 3 3 共享存储器系统设计 共享存储器系统设计包括硬件和软件两方面,软件方面主要工作是进行内存 的映射,我们会在设备驱动程序一节中详细说明。硬件方面包括两部分,第一是 对共享的存储器设置访问控制;第二是对$ 3 c 2 4 1 0 总线进行扩展,将f p g a 模块 连接到$ 3 c 2 4 1 0 总线上,使其成为$ 3 c 2 4 1 0 平台的一个外设。本系统中对共享的 存储器的访问控制和f p g a 模块与$ 3 c 2 4 1 0 总线接口逻辑都是由f p g a 系统的r a m 控制模块实现的,其功能请参考3 2 3 小节。我们将r a g 控制模块挂接到了$ 3 c 2 4 1 0 的b a n k 4 上,从地址0 x 2 0 0 0 0 0 0 0 开始的4 k 个字节,包括4 k 字节的数据r a m 存储 空f 回和4 个字节的控制寄存器。我们对从o x 2 0 0 0 0 0 0 0 开始4 个字节的地址进行了 复用,我们通过$ 3 c 2 4 1 0 发出的读写信号进行区分。当$ 3 c 2 4 1 0 发出读信号时, 这部分地址为数据r a m 空间;当$ 3 c 2 4 1 0 发出写信号时,这部分地址为控制寄存 器空问。控制寄存器的值与f p g a 数据采集系统的关系请参考3 2 2 小节这个 功能的实现v e r i l o g 程序如下: a l w a y s ( p o s e d g er d c l k ) b e g i n i f ( n w r i t e = = o & & n g c s = = o ) c o n t r o lr e g 1 5 :0 = d a t a _ i n o u t 1 5 :0 ; e l s ei f ( n r e a d o & & n c _ j c s = = o ) d a t a _ i n o u t - - r a md a t ao u t ; e l s e d a t a _ i n o u t = 3 2 b z ; e n d 当写信号线有效时,将总线上的数据保存在c o n t r o lr e g 中;当读信号线有 效时,将数据r a m 的数据总线连接到a r m 的数据总线上。其中c o n t r o l _ r e g 是自 定义的f p g a 控制寄存器,d a t a _ i n o u t 是与a r m 总线相连的信号线, r a m _ d a t a _ o u t 是数据r a m 的数据总线。 a l w a y s 勖a o s e d g ew r c l k ) b e g i n 1 4 c 删v r c s ) w i d e l :b e g i n w r _ a d d r e s s 9 :0 = 1 0 - b 0 : r a m _ w r c n = l b o ; e n d s l :b 铭j n w r _ a d d r e s s 9 :0 k e r n e ls u p p o r tf o re l fb i n a r i e s 另外还要添加对文件系 统的支持,我们选用的是c r a m f s 文件系统,我们还需要配置内核时选择其中的 m e m o r yt c c l m o l o g yd e v i c e ( m t d ) s u p p o r t 、m t dp a r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论