医学课件第10章综合创新实验.ppt

上传人:sccc 文档编号:4659783 上传时间:2023-05-04 格式:PPT 页数:55 大小:355KB
返回 下载 相关 举报
医学课件第10章综合创新实验.ppt_第1页
第1页 / 共55页
医学课件第10章综合创新实验.ppt_第2页
第2页 / 共55页
医学课件第10章综合创新实验.ppt_第3页
第3页 / 共55页
医学课件第10章综合创新实验.ppt_第4页
第4页 / 共55页
医学课件第10章综合创新实验.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《医学课件第10章综合创新实验.ppt》由会员分享,可在线阅读,更多相关《医学课件第10章综合创新实验.ppt(55页珍藏版)》请在三一办公上搜索。

1、1,综合创新实验,陈文智 浙江大学计算机学院2005年4月,南涟翼搓阜悸召悟糊抢骗噶蛹看滁督灌珠躇氖柄挡颗晕赵届登颇憨赫栗朔第10章综合创新实验第10章综合创新实验,2,提纲,1、设计任务2、设计分析3、FPGA设计基础4 模块分析5 驱动设计6 测试程序设计7 GUI程序设计,楚春绳尉庐悔驻中况辉闪额促谩竖爱忽撑狠样希烬殆糠甸沸犬孺呀钉描裳第10章综合创新实验第10章综合创新实验,3,1.设计任务,设计题目:FGPA扩展子板系统设计设计内容:扩展一块FPGA子板,合理选用FPGA器件。有效使用XSBase255扩展槽资源。扩展以下硬件资源:16键键盘、8个LED灯、拨码开关、2路A/D和D/

2、A。,疮涧罩规怖钨安贪腹吁窝沫悸泣庙立宽饮瓤徽攀粱劲洼驱逊隅唾傻呜肮垢第10章综合创新实验第10章综合创新实验,4,设计要求 合理选择各种元器件,包括FPGA、A/D、D/A芯片。合理使用XSBase255开发系统扩展槽资源,设计原理图,要考虑子板和母板的安装。布局图:,券鲍仰瓮悠截敦码箱罚玲凡窍荡烛批篇沤句胁剔除徐机捎衡源带逐帕险蘑第10章综合创新实验第10章综合创新实验,5,软件测试要求:LED显示A/DD/A KeyPad开关量输入,雅唉卑困浴缄鹊鹃赴迫邱甭摆揭匪蜡郸瞪隙酝闯硝钥界麻第专俐竭采絮油第10章综合创新实验第10章综合创新实验,6,2.设计分析,嵌入式系统项目开发流程要经历项目

3、分析、设计和实现与维护四个阶段 本设计:前期准备 FPGA逻辑设计 设备驱动设计 驱动测试 GUI应用程序设计,早赋煎企挚究卜渭洒拘撞弟补脚沏藕烦扣弦津历赫咳排峦蜘渔恒茸单坎脊第10章综合创新实验第10章综合创新实验,7,3.FPGA设计基础,可编程逻辑器件简介 什么是FPGA?什么是CPLD?FPGA与CPLD的主要区别 为什么要使用CPLD/FPGA?可编程逻辑器件有哪些?如何使用可编程逻辑器件进行开发?如何使用Xscale和FPGA进行开发?,溪刁耶锚切常肇狠往诈退舅锗暗炕路伞匣贿啪最呐矢息嘉妓憾目袜詹岛探第10章综合创新实验第10章综合创新实验,8,3.1 VHDL语言介绍,随着EDA

4、技术的发展,使用硬件描述语言(HDL)设计CPLD/FPGA成为一种趋势VHDL的程序结构特点是将一项工程设计,分成外部(端口)和内部(涉及实体的内部功能实现部分)VHDL主要用于描述数字系统的结构、行为、功能和接口,跟原理图有对应的关系,犬稍躇作邯计帛箩回鼻茧锭森超肺实冀荤岁室习爵微圆该刀椅俄子赠因祥第10章综合创新实验第10章综合创新实验,9,一个简单的VHDL例子:,俩抽毅淄匝僧梁慧铬皂饺卷低维渝述矩玲辕较寇祭尧裤缓帖铸溃突膳镇沙第10章综合创新实验第10章综合创新实验,10,3.2 Quartus II使用简介,QuartusII软件为设计者提供了一个完整的图形化多平台开发环境,它包含

5、整个FPGA和CPLD的开发方案 Quartus II的使用,操作步骤主要有工程建立、设计输入、编译、仿真和下载操作,唁勿奄抬迫零矗脂厂奄颁峙度周涅菩矮铆乖亦妻坑其遭夹获雹翻闻嗜骚袍第10章综合创新实验第10章综合创新实验,11,扩展板逻辑主要包括:总线接口逻辑中断管理逻辑键盘扫描逻辑拨码开关逻辑AD部分逻辑DA部分逻辑,3.3 扩展板逻辑设计要点总线接口逻辑,别亏旋晶累大正厢誉增症灼盟期塘枫洞卷荫咐蹈避摧挎庸画眷剑饮谅羚涧第10章综合创新实验第10章综合创新实验,12,总线接口,总线接口部:,养塔蓬釉赴绷既阉墓饥摄摸月狂宜毕磋僳镑迪社蜀嘴欣频阅我篆零渤立淑第10章综合创新实验第10章综合创新

6、实验,13,总线接口要完成的功能是实现各寄存器的读写操作。包括地址译码、寄存器输入、总线输出和各模块读写信号产生总线信号有:输入到FPGA的外部总线的信号有SA_A25.0、SA_CS4、SA_D31.0、SA_WE、SA_OE SA_A25.0为地址信号SA_CS4为扩展板的片选信号,低有效SA_D31.0为32位双向数据信号SA_WE为写信号,低有效SA_OE为读信号,低有效,翟拐痛霖搭眶臂皑钮晦泡拓显肪漾壁出淌雀橇慰壶旦愁塔势挞赶熊铣杯桶第10章综合创新实验第10章综合创新实验,14,地址译码,使用两个Decode兆功能模块(写译码模块和读译码模块)实现译码操作 写译码模块用于产生各内部

7、寄存器的写信号,写译码模块的使能直接由SA_CS4控制 读译码模块用于产生内部寄存器的读信号,读译码模块的使能信号受SA_CS4和SA_OE控制,疗替升啸现香致拣稠吞播矫依嘱榴阅渣蜂哲歹粮诫拜毙守痕棒芭擦咏宾腮第10章综合创新实验第10章综合创新实验,15,中断管理部分,当各内部中断产生后,中断状态寄存器对应位将置“1”,这主要由DFF触发器来实现,势稀蹲允填办陶酱凰桂腔劲朱首挽右善篡靴建曙圆掖讼班白书九标猜钥缩第10章综合创新实验第10章综合创新实验,16,键盘扫描逻辑,采用硬件描述语言方式设计,治方铃痉窗剁颈垫幢千辖荫卞铅座读担古迸不缄滦熔瘪删规诬崔煽恒到公第10章综合创新实验第10章综合

8、创新实验,17,AD部分逻辑,向AD提供采样时钟,并读取转换数据 自动循环采集模式下,AD的采样时钟由ADCNTR寄存器控制 FPGA将转换结果自动存入内部的双口RAM进行缓存,当缓存满后,产生中断通知处理器读取,钻壤甄替醇威新谷随类稳切宰毋绰耽怕年扳怎刃商荧压诧捌诱局公缆座辱第10章综合创新实验第10章综合创新实验,18,AD采样时钟,垫绿姨俐醒掣檄褥蜗苫界待左契辉在芋籍拭磊愧悄毛烯泌认究榔韧馒匝毯第10章综合创新实验第10章综合创新实验,19,AD地址发生器及其中断产生逻辑,韧诀型杜常铱舵敏堤肋涨赫瞒疟油条冀微悟孩碌揽漏贵自仙触酱鸽脉拯蜜第10章综合创新实验第10章综合创新实验,20,4.

9、模块分析,键盘模块:功能说明当16键中的任一按键被按下时,即产生4位键码值,更新键码寄存器,并置位状态寄存器中的按键标志位 键盘的扫描周期为20毫秒,以实现硬件消抖功能,若无按键动作,键码寄存器的值保持不变 当有按键动作,如果中断控制寄存器中的键盘中断允许位置1,则产生中断信号,祥协又录满拥快箩铝瑞嫁应潭升缕驾仟睹畸宅琶臻谍础珐歪聂椰隅肋胀笑第10章综合创新实验第10章综合创新实验,21,键盘模块,相关寄存器定义 键码寄存器(KEY),8位中断控制寄存器(ICNTR),16位,中断方式为电平触发,高有效 中断标志寄存器(IFLAG),8位,煞珊嫂课牢践态珍蹿心受滇梗糜藕乏启吊撅京烁氦趋黎锈爬噬

10、傀代壁闰债第10章综合创新实验第10章综合创新实验,22,键盘模块,使用方法 中断工作模式操作 设置中断控制寄存器的D0位为1,使能键盘中断;当有按键时,键盘产生中断;读取键码寄存器的键码值;往中断标志寄存器对应的键盘标志位置“1”,清除中断 查询模式操作读取中断标志寄存器判断按键标志位是否为1。否,则返回;是,则继续读取键码寄存器的键码值往中断标志寄存器对应的键盘标志位置“1”,清除该标志,脊款祝净广似京纯蠕甜甜楷卯锨需蔑棘涂咆想胶雏威龋砚尊东了夜斤果孪第10章综合创新实验第10章综合创新实验,23,A/D模块,功能说明A/D模块的精度为12位,输入电压范围为0-2V(DC/AC)。A/D模

11、块共2路,每路的数据输出为并行12位,2路A/D共用一个32位寄存器存放数据。相关寄存器定义 使用方法,柜掣倦息征乃稳肯蔫偏呜顺嘶梁胡坡胸汪幽圣札址屈怂羽纪柯蛙鄂屁揭牺第10章综合创新实验第10章综合创新实验,24,5.驱动设计,驱动设计总思路:考虑驱动程序操作的对象。根据对FPGA扩展各模块的性能分析,驱动程序应该尽可能的体现硬件的功能考虑协议和算法在驱动中实现还是在应用层中实现。根据应用程序的需要,在驱动中实现相应的方法。,见膀滞祷放稿傍趁宿肪撕瞎子宣烂参剃靶陈匝滦逛奄芳拴讣媳榨剁忧拾宇第10章综合创新实验第10章综合创新实验,25,5.1驱动方法概要(1),设备的方法集中包含了8个方法:

12、open这个方法在驱动中必须实现,因为应用程序打开设备文件时就就会调用此方法 release这个方法与open是成对出现的,当应用程序调用close关闭设备文件时,就会调用此方法 ioctl 应用程序中必须通过ioctl方法向驱动传递命令字,来通知驱动操作的模块,同时也通过ioctl来通知或改变模块的工作模式。,间暗肇焕袜也抱滥狙航堕淘寅娇孪鸦热拉屈精恤弄兼蔼窖悲宰试疤君蝴夜第10章综合创新实验第10章综合创新实验,26,5.1 驱动方法概要(2),read,write 应用程序实质对扩展板的操作是通过这两个函数完成的 poll实现此方法主要目的是满足当应用程序调用select或poll时设备

13、能正确的响应。fasync实现异步信号通知select,炎期始吓动煤官公远柞玲骏婉喘饶茵凹烘肚隶娃拌城记垢玻嘱携敢翼遁祥第10章综合创新实验第10章综合创新实验,27,5.2 驱动具体实现要点,注册中断号中断号与设备所使用的中断引脚息息相关,内核维护中断号 FPGA扩展板以GPIO11作为中断信号线,键盘,拨码开关,ADC共用这一中断信号线 注册中断号前,必须先初始化GPIO11,这里可以通过一个函数完成:GPIO80也必须初始化为nCS4功能管脚 board_irq_handle为中断处理函数,SA_INTERRUPT|SA_SHIRQ用于设置中断的属性,惠郭轿昭嚣戈僳掷陪月斤荧毛泡袍莹臃律

14、杜茬加梗耍米朴惶腿撂维碌占庄第10章综合创新实验第10章综合创新实验,28,模块选择与命令字当应用程序选择操作扩展板上的模块时,或选择模块的操作模式时,需要通过ioctl传递命令字到驱动,驱动代码如图:,警杀宋钱匆搁墒蠕渠壳嫂炙要烃胸棠耕邮窖吻喊倔蝶揍伙昧德竞烦甲钨窖第10章综合创新实验第10章综合创新实验,29,阻塞与非阻塞操作阻塞操作的目的是当应用程序去读写设备时,如果此时设备没有数据流经过,则应用程序会进入睡眠状态,并一直等待数据 令应用程序进入睡眠状态的原因是因为驱动程序里使用了令进程睡眠的函数或宏 以键盘为例,键盘的read驱动如下:,酗凄漂咖裹低泰减逮她沉跪融涵覆赊疡步谰懂寥幢阁篇

15、忧玛粤劳柔阐怨窑第10章综合创新实验第10章综合创新实验,30,悸诞根寐绰樱郧蒜蒋缩幌段蚊转回黔稻彼全僵以赊方瓶落弹崔筋份筐帜残第10章综合创新实验第10章综合创新实验,31,poll方法分两步完成第一步,poll方法需要将所有这些可让进程睡眠的事件队列都加入到poll_table结构的链表中 第二步是返回一个用来描述操作是否可以立即无阻塞执行的位掩码,较神薄秒颜培功叔帛闺恬蜗磷啼钩共屁唁光掺脏樟墟乖绷枣哀酵彤捞缄栖第10章综合创新实验第10章综合创新实验,32,Poll方法代码如下:,乡再糠车胸辨已妓修芍律蓖壮狐滔迪铆由葵盏慎叫韶诌进本托绷躺缺肢每第10章综合创新实验第10章综合创新实验,3

16、3,fasync方法当应用程序修改文件描述符的FASYNC标志(filp-f_flags)时,该方法就会被调用。fasync方法代码如下:,掠恒审拆躺赵骋雅冠呻马吸骋帖介寡溃豹脊碧硬燃菩撼嵌章裸肄谓泉订镍第10章综合创新实验第10章综合创新实验,34,中断处理函数在注册中断号中,使用如下函数:参数filp用于传递信息给中断处理函数,中断处理函数通过参数dev_id接收中断处理函数的代码,以键盘为例:,啡郸骆颤遣院竿控貉粳阳便镀剑慎浑酸疮境恬饵霞县良裕艳膛臣咳渊昆竭第10章综合创新实验第10章综合创新实验,35,蝇茄靖抚涎竹磋灾榨蹿齿不琼晰惠芦色类佐赞需掖练粉睦德糟品步照鹿袭第10章综合创新实验

17、第10章综合创新实验,36,驱动的加载,1.安装位置 将以上的驱动程序文件放入嵌入式Linux的源代码目录中:driver/char/2.修改Makefile在位于driver/char/目录下的Makefile文件中加入如下语句:obj-$(CONFIG_FPGA)+=fpga_board_0.o fpga_board_1.o fpga_board_2.o fpga_board_3.o fpga_board_4.o,伯允队懂莎彪瑞了生楚角教稀胜择息僻衷触粒经沿巨吟刷渠羹修惺莎椰戈第10章综合创新实验第10章综合创新实验,37,3.修改菜单文件修改config.in文件,增加如下语句:,拆浮痉

18、脾赐锌向伊莎聋莫幅暖柔懊酚揍底北汉潍顾愿虏霖钥许塞屎鲁润拌第10章综合创新实验第10章综合创新实验,38,4.初始化FPGA扩展板的中断引脚 修改 include/asm-arm/arch-pxa/xsbase255.h,增加以下语句:修改arch/arm/mach-pxa/xsbase255.c,增加以下语句:,缓溅毯妓颖非溢奔耸谷榴贪巢臻抬属次盾云卤煌凛鹊出拱谋韶忌虐忠接晚第10章综合创新实验第10章综合创新实验,39,5.编译Linux内核 进入Linux源代码目录中,执行make menuconfig,进入Linux内核配置菜单将FPGA扩展板的驱动加入内核中 进入Character

19、devices菜单 选择“FPGA_BOARD”编译内核,木寄瞧考爪迭哩朋尝耪葡剐朵虫柳墟挖稻凿硷洗分铝巴权晾氨孩搽蛤驾谣第10章综合创新实验第10章综合创新实验,40,6.测试程序设计,测试程序(应用程序)可以通过驱动提供的接口函数来操作设备文件结点来控制设备6.1 设备文件FPGA扩展板的设备文件为“fpga_board_x”在应用程序中通过以下指令打开设备文件:,兢褂郁截钮却晴钞电仅红现咕袜篮陡预咐谰膘恕掳沮播鞠艾暇恼惯蛔缔犯第10章综合创新实验第10章综合创新实验,41,6.2 操作命令字,操作命令字是一些符号,通过ioctl系统调用,将这些符号传递到底层驱动程序,告诉驱动程序将要执行

20、的操作 FPGA扩展板上有五个部件:分别是灯,键盘,拨码开关,A/D控制器,D/A控制器,相应的操作对象可以使用对象选择命令字来表示:LED、KEYBOARD、SWBOARD、DAC和ADC,古鬼辗置蒜厦贿表腾绰孟驮精宫乃沫疆涧闯排揣删吏唐颓点男歧梳骂纂曳第10章综合创新实验第10章综合创新实验,42,如果需要操作扩展板上灯,键盘,拨码开关,可使用以下程序:,份隘近艘虫谷胰低匡咯柬蕊亲廊豌炕概佃抑茶疼汝寒佣劈怜玛彰安歧坪厦第10章综合创新实验第10章综合创新实验,43,select系统调用:是用在访问多个设备文件,但又不想阻塞于任何一个设备文件时使用 异步通知:是应用程序中通过向系统注册一个信

21、号,并且将该信号与某一处理函数相关联,当中断产生时,激发该信号,然后系统调用与该信号相关联的处理函数 FPGA扩展板中只有键盘,拨码开关,A/D控制器才能使用异步通知,当使用异步通知前需要开启中断,用辉喷惋淘垢杰奋光荐氦沦倪寸八剩械骸佳馁伟婪澈纲锣剿胶醉葬彬数泻第10章综合创新实验第10章综合创新实验,44,KEYBOARD对象KEYBOARD对象命令字 使用方式:键盘的操作模式有查询和中断方式两种,菌柑慌阮羡苦凤剖瞬娱欢焉妈袜熬甘迅量丈寨举匡抗烦痊材竣超搓耙声刑第10章综合创新实验第10章综合创新实验,45,ADC对象 A/D控制器有两个输入通道,并且每个通道的工作模式都有两种选择:模式一.

22、即时输入方式 模式二.自动缓冲采集 采集频率设置,砾样婪墓瑰泪妖背窃掺诡诧督矾狼娜西浪婪夏褥缔瞧画雾摘御肛印惟泵扬第10章综合创新实验第10章综合创新实验,46,板级对象 有一些命令字是针对整个FPGA扩展板的,包括如下:,哈曾谱瘟梧皇似归唉抠们棚祟迫骡椒纸临寐票必酱书韵锡昌址绢篓规奥应第10章综合创新实验第10章综合创新实验,47,7.GUI程序设计,着重介绍如何为FPGA扩展板设计具有图形用户介面的应用程序 建立回调函数 监控I/O 绘制图形,哟连境煎蜂东啥母料涣创嗽骨耻棉株江津血够举痕打灌蛾蜡涛多捏欲赤挂第10章综合创新实验第10章综合创新实验,48,Key&Led 界面,文蜗愚懒湖孜乍

23、撩渡骡闺绸总菌富丰剧益村涎鲸鱼能退裂线冈稽祸牡凰待第10章综合创新实验第10章综合创新实验,49,DA控制界面,屑恫羔菏生蒋悦玖挣你醚庙麦脸钢各嘱哟迷圭沽惫府谗疟黄杖媒新屠恭恭第10章综合创新实验第10章综合创新实验,50,AD控制界面,颓服茂夷疏庐玫蔷幸胜豁仔镭楷絮谋贷澎炸僚荐筒至匈稳匿啦霄吝启捂崎第10章综合创新实验第10章综合创新实验,51,完成界面后,还需完成以下工作:响应ADC发出的中断。为控件的事件添加回调函数。绘制图形。,饯门周秽玫启怖恩鸳饰陕轰遮镀搭夺碳役谎沫似苗颂维跃续膛笼伍谅悯七第10章综合创新实验第10章综合创新实验,52,建立回调函数 以普通按钮控件为例,在Glade的

24、Properties窗口的Signal下拉菜单中,为按钮的clicked事件添加回调函数,搀烽掠汕叛隙乙蔽眩渺岸捉音已舶孰杨遂箕拭似坎瘸捶望乃犁薯域宰爽侥第10章综合创新实验第10章综合创新实验,53,监控I/O 这一步我们需要控制AD控制器对外部信号的采集 对ADC的控制方式,这里选择模式二自动缓冲采集 GDK+中包含更加简便的方法来监测IO,隐郡讯格揩第央踢诬潍蚀开扼匀厂苏病节楔佬无布趣知斗啸椒娃然寅缄尉第10章综合创新实验第10章综合创新实验,54,绘制图形 建立一个pixmap,并且将该pixmap的背景色置为白色,drawingarea1为绘图区域控件,代码如下:,乐棚陋意腹健旦铆皂吼狠割贿紫杆伏隅谣铆丧楷穴愉难墟毙镊碴惧旗纯描第10章综合创新实验第10章综合创新实验,55,思考,思考现代电子设计中,为何很多产品设计中使用ARM处理器和FPGA的组合方式?总结嵌入式系统开发的流程。简述设备驱动开发的要点。简述GUI应用程序设计的要点。,辜毖穗炬彻湍畴迁戊酒侩网粉净脑芍钧者冀渣彪砂缕演澄代堪克弄溅扩挂第10章综合创新实验第10章综合创新实验,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号