毕业论文再次修改版- 副本 - 图文(8)
VOID EINT_ConfigInterruptPin(VOID) { }
由于pINTCRegs是INTC_REGS_T类型的实例,而INTC_REGS_T定义如下: /* Interrupt Controller Module Register Structure */ typedef struct {
volatile UNS_32 er; /* Enable Register */ volatile UNS_32 rsr; /* Raw Status Register */ volatile UNS_32 sr; /* Status Register */
volatile UNS_32 apr; /* Activation Polarity select Register */ volatile UNS_32 atr; /* Activation Type select Register */ volatile UNS_32 itr; /* Interrupt Type select Register */ } INTC_REGS_T;
其中,APR寄存器表示中断极选择:0表示通过低电平或者下降沿产生,1表示通过高电平或者上升沿产生;
ATR寄存器表示中断激活类型选择:0表示电平敏感,1表示边沿敏感; 将两者都设置为1,则表示GPI_2中断是由上升沿产生。
在完成FPGA以及中断的初始化和相关寄存器的设置后,下面的工作就是具体通过DeviceIO Control函数和相应的IO_Control Code来执行具体的读写操作。用户模式下的DeviceIO Control函数可以发送特定的IO_Control Code给一个特定的设备驱动程序,使相应的设备执行该动作。
实现的具体函数为PGA_IOControl。分别为读取FPGA寄存器和写入FPGA寄存器功能。
switch(dwCode)
{
case IOCTL_FPGA_WRITE_REG:
mreg=(FPGA_DATA*)pBufIn;
if(mreg->RegAdr < 0 || mreg->RegAdr > 15)
第 35 页 (共41 页)
pINTCRegs->atr |= GPIO_IRQ_MASK; //上升沿或者高电平触发 pINTCRegs->apr |= GPIO_IRQ_MASK; //上升沿触发
{
RETAILMSG(1,(L\)); return FALSE;
pBuff = mreg -> pBuff;
}
for(WriteLen = 0;WriteLen < mreg->BufferLengh;WriteLen ++) { } break ;
g_lpBaseFPGA[mreg->RegAdr * 2] = pBuff[WriteLen];
case IOCTL_FPGA_READ_REG:
mReadReg = (FPGA_DATA_READ*)pBufIn; pRDBuff = mReadReg->pBuff;
for(ReadLen=0;ReadLen
pRDBuff[ReadLen]=g_lpBaseFPGA[mReadReg->RegAdr * 2];
break; }
第六章 实验
1、FPGA收发数据测试
FPGA的RS485通信模块测试采用方法:一台主DCS控制站通过RS485模块向从DCS控制站发送0~49共50个数据,从DCS控制站的RS485模块收到数据后,将数据发送到PC机并显示,显示如下图:
第 36 页 (共41 页)
图6.1 FPGA收发数据测试终端显示
在接收数据过程中,FPGA能够准确的接收到来自RS485通信协议传输的数据,并且能够判断数据接收完成,能够实现RS485的双通道冗余功能。在FPGA发送数据过程中,能够正常的FIFO清零,然后能够正确的发送准确的数据。
图6.2 RS485总线波形 第 37 页 (共41 页)
通过示波器显示的RS485总线波形,发送控制信号的宽度基本与数据信号的宽度一致,所以保证了发送数据的正确和发送和接收数据。
图6.3 RS485传输距离测试
通过对RS485传输距离的测试,可以得知RS485在100m的距离上能够实现10Mb/s的数据传输,总的来说RS485作为一种串行通信的接口,它的传输距离还是比较的长的,满足DCS控制站与现场I/O模块之间的通信需求。
2、FPGA中断测试
图6.4 FPGA采用中断方式接收数据
在实验过程中,FPGA在收到中断信号之后,能够立即开始接受数据,并能够接收
第 38 页 (共41 页)
到正确的数据,因此能够实现FPGA与LPC3250之间通过中断的方式接收数据。
图6.5 FPGA中断方式WinCE测试程序
3、实验结论
通过本次实验,可以得知能够基本完成课题的要求,完成了基于FPGA的RS485通信模块之间的数据接收与发送的要求,以及RS485的传输距离的测试。同时RS485需要具有两路独立通道以实现冗余功能,FPGA与LPC2350之间要能够以中断方式接收数据,并实现校验。
参考文献
[1] http://blog.csdn.net/jw212/article/details/6255848
[2]http://topic.csdn.net/u/20101026/18/5413cb6c-3749-4280-8caf-2d2b49e77999.html [3] Draft LPC32x0 User manual. Rev. 00. 27 — 20 November 2008 [4] LPC3220/30/40/50 Product data sheet. Rev. 01. 01 - 1 April 2009.
[5] http://topic.csdn.net/u/20090527/11/2075c97a-d088-4ea6-bfd2-f4c1036d09ff.html [6]王常力,罗安.分布式控制系统(DCS)设计与应用实例.电子工业出版社.2004 [7]刘皖,何道君,谭明.FPGA设计与应用.清华大学出版社.2006 [8]赵艳华,曹丙霞,张睿.基于QuartusⅡ的FPGA/CPLD设计与应用.电子工业出版社.2009 [9]倪旭翔,计春雷.ARM Cortex-A8嵌入式系统开发与实践.中国水利水电出版社.2011 [10]马建国,孟宪元.FPGA现代数字系统设计.清华大学出版社.2010 [11]MAX3088 User manual.Rev3;12/05
[12]Cyclone Ⅱ Device Handbook(Altera Corporation).November 2004 [13]74AHC1G14 Product specification.2002 Feb 18
[14] 桂电—丰宝联合实验室编著.基于LPC3250的嵌入式Linux系统开发.电子工业出版社.2010 03
第 39 页 (共41 页)
[15]徐欣.FPGA的嵌入式系统设计.机械工业出版社.2004
第 40 页
41 页)
(共
…… 此处隐藏:1184字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




