基于C8051F和FPGA的单片机实验系统的设计

发布者:theta18最新更新时间:2010-11-24 来源: 单片机与嵌入式系统 关键字:单片机  FPGA  外围电路  电路板 手机看文章 扫描二维码
随时随地手机看文章

    目前高校单片机教学中大多是以MCS51单片机为首选机型进行讲解,所开发的教学实验系统也多是基于MCS51系列单片机开发设计的。然而,随着单片机的应用进入SoC时代,其不足和缺陷也显而易见:片上资源不够丰富,功耗较大,处理速度很有限,电路庞大且复杂,可靠性和可维护性较差,难以满足高水平的设计要求。

    为了进一步简化电路结构,提出一种C8051F单片机实验系统设计方案,该方案采用FPGA实现单片机各种外设接口。FPGA作为一种可编程逻辑器件凭借其优越的可扩展性能受到设计者的青睐,逐渐成为分立元件的替代者。通过对FPGA编程,实现任何数字元件的逻辑功能,设计者可以通过原理图输入或硬件描述语言,方便地设计一个数字系统,这使得单片机外围电路的设计简单、灵活、可靠。

    本系统是为单片机实践教学而开发的,因此要求单片机的功能齐全,满足教学中各种实验的要求。一般的实验板的功能有:模拟数字信号转换实验、通信接口实验、存储器实验、各种显示实验,人机交互实验等等。除此之外,还要考虑由于是非商业性质的开发,对一些功能的精度要求不是很高,在选择最理想价格的同时,选择尽可能多而全的片上资源,留待后期开发扩充。

    基于以上考虑,该平台使用SoC系统级的C8051F020单片机作为核心控制器,CycloneⅡEP2C8型FPGA实现外设接口,加上LCD、键盘、UART串口等人机交互的模块。

    C8051F系列单片机是以流水线方式处理指令的CIP-5l内核,完全集成的混合信号系统级芯片(Soc),片内集成了数据采集和控制系统中常用的模拟、数字外设及其他功能部件。C8051F020单片机具有片内调试电路,通过4引脚的JTAG接口可以进行非侵入式、全速的在系统调试。

    FPGA即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA使用灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。

1 系统总体方案

    本文设计并实现了基于FPGA的单片机开发平台,该平台主要包括有:单片机及其外设、FPGA扩展电路、电源及下载电路。开发平台框架如图l所示。

a.JPG


1.1 单片机外设

    包括液晶显示器(LCD)、键盘、SRAM、UART串口等,对FPGA进行编程来实现LCD、键盘、SRAM的接口电路。

1.2 FPGA扩展电路

    包括主动串行(AS)配置电路、JTAG在线调试电路、输入输出电路等。采用EPCSlN8型芯片对FPGA进行主动串行(AS)配置,同时兼有JTAG在线调试模式。

1.3 电源及下载电路

    单片机和FPGA均采用3.3V/1.2V稳压源供电,两者均可通过JTAG接口进行在线调试。

    FPGA和单片机以典型的三总线连接进行数据通信及控制,单片机内部集成的数字/模拟资源和FPGA剩余的引脚通过插针引出,供用户使用。将以上模块有机结合起来,形成一个性能优越的开发平台,能够满足不同层次的设计需求。

2 硬件电路设计

    在单片机系统的人机交互部分通常有液晶显示器(LCD)、键盘和存储器等外设,因此需要用大量的标准逻辑器件对单片机进行扩展,这些器件的组合使用会导致设计周期长、可维护性差,用FPGA来实现单片机的外围接口电路,能大大简化电路结构,节省CPU资源。

2.1 键盘接口模块

    因为按键机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的导通,在断开时也不会马上断开,因而在闭合及断开的瞬间都会伴随一连串的抖动,对于灵敏度较高的电路,这种抖动可能会造成误动作而影响操作正确性。常用的去抖动的方法为延时去抖动法,即检测出键闭合后执行一个延时程序,产生5~lO ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按件释放后,也要给5~10 ms的延时,待后沿抖动消失后,才能转入该键的处理程序。

    对FPGA编程完成消除抖动及按键识别,由抖动消除模块、键盘扫描电路、键盘译码电路、按键数据寄存器等组成。

    键盘接口电路的工作流程为:采取逐行扫描法,FPGA周而复始地对键盘进行扫描,当有键按下时,先对按键进行延时去抖处理,将按键信号存入寄存器,扫描信号来临时,根据按键扫描码查找键码表,并将其送回给单片机。程序流程如图2所示。

b.JPG


2.2 液晶显示模块

    液晶显示器(LCD)以其微功耗、体积小、显示内容丰富、超薄轻巧等诸多优点,在便携式仪表和低功耗应用系统中得到越来越广泛的应用。

    LCD可分为段位式LCD、字符式LCD和点阵式LCD。其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动,动画功能,反转,闪烁等功能,用途十分广泛。

    点阵式LCD分为带汉字字库和不带汉字字库两种,带字库LCD若要显示汉字只要传给汉字内码,而不带字库LCD显示汉字时要先求出汉字字模,然后跟显示图形一样显示汉字。

    本开发系统采用博控公司生产的NS240*128A点阵图形型LCD,不带中文字库。由于液晶显示器是典型的慢速设备,如果直接与高速的单片机相连时,会浪费大量的时间,可以考虑在单片机和液晶显示器中间加入FPGA,由FPGA直接驱动和控制液晶显示器。液晶显示模块框图如图3所示。

c.JPG

    单片机将字库/图形库内的图形或文字数据以及这些数据在液晶上所显示的位置信息传送给由FPGA芯片构成的液晶控制IP核。由于LCD是慢速设备,单片机发送至LCD控制器的显示数据信息的速度通常大于LCD显示更新速度,因此需将这些数据和信息送入数据存储器中缓存。由于FPGA芯片的片内RAM容量有限,系统中外扩了1片RAM作为显示数据缓冲器。由FPGA芯片构成的显示控制IP核需读取外扩显示RAM中的数据,再通过显示驱动电路按字节送至LCD进行显示:因此在所设计的显示驱动电路中设计了一个双端口RAM,既能将显示数据缓存器中的显示数据写入双端口RAM,同时又能将双端口RAM中的数据读出,再将数据送至LCD数据接口。

2.3 SRAM模块

    C8051F020内部有位于外部数据存储器空间的4 096字节的片上RAM,还有外部数据存储器接口EMIF,可用于访问片外存储器和存储器映射的I/O器件。外部数据存储器接口EMIF可配置到低I/O端口P0~P3,也可配置到高I/O端口P4~P7。而且,既可以配置为数据、地址复用方式,也可以配置为非复用方式。若要节省端口I/O,可采用数据、地址复用方式,能节省8根端口线,但是速度较慢,若要提高速度,则可以采用非复用方式。

2.3.1 配置外部存储器接口的步骤

    1)将EMIF选到低端口(P3~P0)或选到高端口(P7~P4)。
    2)选择复用方式或非复用方式。
    3)选择存储器模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器)。
    4)设置与片外存储器或外设接口的时序。
    5)选择所需要的相关端口的输出方式。

    在本系统中考虑到(28051F020单片机的PO~P3口大部分为功能复用引脚,为使单片机的资源得到最大的开发,将单片机的高端I/O口,即P4~P7接入FPGA,并通过FPGA对RAM进行访问。将单片机配置为高端口(P4~P7)、地址/数据总线分时复用方式,FPGA控制RAM的片选、读/写等操作,其中注意FPGA、单片机、RAM的时序统一问题。

2.4 UART串口

    UART是一种通用串行数据总线,该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其他器件,如EEPROM通信。

    UART首先将并行数据转换成串行数据来发送。消息帧从一个低位起始位开始,后面是若干数据位,一个可用的奇偶校验位和一个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。

    C805lF020单片机中有两个增强型串行口:UART0和UARTl。所谓增强型是指,这两个串口都具有帧错误检测和通信地址硬件识别功能。它们都可以工作在全双工异步方式或半双工同步方式,并且支持多处理器通信。开发板外扩两个增强型UART串口,实现单片机与PC机、单片机和单片机之间的通信。其电路连接如图4所示。

d.JPG

2. 5 A/D和D/A模块

    C8051F020有一个片内12位ADC(ADCO)和一个8位ADC(ADCl),通道输入多路选择开关和可编程增益放大器。

    ADC的电压基准可以在模拟电源电压(AV+)和一个外部VREF引脚之间选择。A/D转换有4种启动方式:软件命令、定时器2溢出、定时器3溢出和外部信号输入。这种灵活性允许用软件事件、外部硬件信号或周期性的定时器溢出信号触发转换。转换结束由一个状态位指示,或者产生中断(如果中断被使能)。在转换完成后,12位或8位转换结果数据字被锁存到两个特殊功能寄存器中。这些数据字可以用软件控制为左对齐或右对齐。

    C805lF020内部有两个片内12位电压方式数/模转换器(DAC)。每个DAC的输出摆幅均为0 V到(VREF-1LSB),对应的输入码范围是Ox000到OxFFF。C8051F020的VREF引脚可以由内部电压基准或一个外部源驱动。如果使用内部电压基准,为了使DAC输出有效,该基准必须被使能。
本文设计了利用A/D和D/A模块进行简单的语音信号的存储和回放,基本思想是将模拟语音信号经过前置放大和滤波电路的处理,通过模数转换器A/D转换成数字信号,再通过单片机控制存储在存储器中,回放时,由单片机控制将数据从存储器中读出,然后通过数模转换器D/A转换成模拟信号,经放大在扬声器或耳机上输出语音。音频前置放大和滤波电路如图5所示。

e.JPG



3 结束语

    本开发系统采用MCU+FPGA结构,单片机负责过程控制和数据处理,FPGA实现各种外设的接口,同时FPGA还可以为单片机提供存储器和I/O口等资源。由于电路中具有数字部分和模拟部分,在PCB制板时特别注意抗干扰处理,例如加去耦电容、数字地和模拟地一点连接、数字电源和模拟电源隔离等措施。

    需要注意的是,采样后的数字语音信号由于数据量很大,为了节省存储空间,可以采取相应的编码技术去除冗余度,回放的语音质量性噪比(RSN)较高。系统采用3.3 V供电单片机,功耗降低50%左右。通过配置内部寄存器和外部时钟切换电路,可灵活配置系统时钟。通过单片机内部交叉开关的配置,设计者可以实现数字和模拟外设的引脚分配和器件的使能。经过测试,各模块均能够达到设计要求,具有良好的可扩展性和稳定性,适合作为电子设计大赛和电子爱好者的开发用板。

关键字:单片机  FPGA  外围电路  电路板 引用地址:基于C8051F和FPGA的单片机实验系统的设计

上一篇:基于AT89C2051的数字温度计设计
下一篇:基于LM331和51单片机的压力数据采集

推荐阅读最新更新时间:2024-03-16 12:31

复旦微28nm FPGA芯片去年上半年营收3083万元,毛利率达99.6%
日前,复旦微在回复上交所问询函中表示,公司28nm大规模亿门级FPGA产品于2019年初开始量产。2019年和2020年1-6月,公司28nm工艺制程FPGA实现的收入分别为1511.03万元和3096.35万元,增长迅速,且占FPGA总收入的比例由18.02%提高到了49.77%。 此外,2019年和2020年1-6月,复旦微28nm工艺制程FPGA的毛利分别为1488.04万元和3083.84万元,毛利率水平分别为98.48%和99.6%,主要终端客户为高可靠领域客户。 “由于FPGA的推广需要经历由Designin到Designwin,再到批量销售的过程,整个周期相对较长,且产品产能需要经历爬坡过程,因此占全球市场的份额相对
[手机便携]
基于51单片机的电子密码锁设计-- 1602显示
一.硬件方案 本系统由STC89C52单片机、44矩阵键盘,蜂鸣器,复位电路和晶振电路、继电器等组成,44键盘主要用于密码的输入和修改,蜂鸣器报警,复位电路和晶振电路与STC89C52单片机组成单片机最小系统。它具有设置、修改6位用户密码、输错报警、密码错误报警等功能。 主要由51单片机+最小系统+LCD1602液晶显示模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+矩阵键盘模块+AT24C02芯片模块;如图: 二.设计功能 (1)采用AT24C02芯片可以实现存储的密码掉电保存。密码为1-16位,开锁时可以随意输入虚假密码掩人耳目可以随意更改,更改时要输入两遍确认; (2)采用矩阵按键输入、1602液晶显示、继电器模
[单片机]
基于51<font color='red'>单片机</font>的电子密码锁设计-- 1602显示
飞思卡尔推全球Flexis微控制器系列研讨班 现已开始注册
90多场强化培训将帮助工程师用业内首款兼容8位和32位的超低功率MCU进行开发 德州奥斯汀讯--2007年9月19日-- 飞思卡尔半导体近日推出全球系列研讨班,旨在为嵌入式开发人员提供全面的动手培训,让他们学会飞思卡尔Flexis QE128器件—业内首款兼容8位和32位的微控制器(MCU)的使用。Flexis系列研讨会的注册现已开始,从现在开始直到12月份,在全球的90多个地点同时进行。 此次为期一天的研讨班旨在让工程师学会如何在基于S08内核的8位MCU MC9S08QE128和第一款基于V1 ColdFire内核的32位MCU MCF51QE128间进行移植。Flexis QE128 MCU具有业内领先的超低功率功能,
[焦点新闻]
基于单片机的LED数字大屏幕显示系统
1 引言   LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,应用越来越广泛。ATMEGA16L单片机是一款基于AVRRISC的、低功耗CMOS8位单片机,具有16K字节的自编程FLASH,512字节的EEPROM,1K字节的SRAM,通过AVR单片机来控制LED的显示,结构简单,应用灵活,并且易于扩展。   2 系统设计原理   2.1 编码设计   编码设计有两个过程:字库提取以及字模编码转换。字库的提取涉及到的两个字库文件,一个为ASC16,专门存放ASCII编码;另一个为HZK16,专门存放汉字字库编码。要提取字库,首先要对它进行初始化,即打开字库。然后根据一个字符提取它相应的编码。首先取出
[工业控制]
基于<font color='red'>单片机</font>的LED数字大屏幕显示系统
一种基于FPGA的CAN总线通信接口的设计
  CAN总线是现场总线的一种,因为其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。但是计算机没有CAN总线接口,为了进行CAN总线的调试,必须具有专用的适配卡才能实现与计算机的通信。目前常用的CAN转换器是基于单片机设计的,一般只适用于单路CAN总线的数据转换,可扩展性差。   在小卫星相机下位机系统中使用了多种总线,如CAN总线与卫星管理计算机的通信;RS422(或RS485)总线与成像单元等下行单元的通信。在进行相机下位机系统地面调试时,可能需要多种总线转换器。采用FPGA将不同总线协议转换成USB2.0、RS232等可与计算机直接交换数据的协议,可增强设计的灵活性,降低设计
[嵌入式]
一种基于<font color='red'>FPGA</font>的CAN总线通信接口的设计
基于TMS320DM642的CCD图像采集系统设计
1系统总体设计 1.1系统结构 本系统以TMS320DM642为核心,采用模块化设计思想,整个系统主要由视频解码芯片(A/D转换芯片)、可编程逻辑门阵列(OSD FPGA)、TMS320DM642及外围电路组成。外围电路主要包括CCD摄像机、SDRAM图像存储器、FLASH程序存储器及TMS320DM642外围电路(复位、电源连接等)。图1为该系统的结构框图。 1.2系统工作原理 由CCD摄像头摄入的PAL制图像传送到SAA7115解码器,SAA7115解码器将信号转变成并行的BT.656图像码流送至TMS320DM642视频口VP0,TMS320DM642将其再解码,得到YUV(4:2:2)格式的图像,并通过EDMA传输到动
[嵌入式]
基于TMS320DM642的CCD图像采集系统设计
触摸屏与单片机的通信实现
  随着触摸屏的应用和产量的增加,价格下降。因而有可能使用触摸屏作为单片机控制设备的键盘和显示装置,提高单片机控制设备的档次。触摸屏与PLC联合使用时,触摸屏的主要功能是:   ①显示PLC输入,输出端13或辅助继电器的开关状态。   ②用触摸按键强制PLC输入,输出端口或辅助继电器的开/关。   ③显示PLC中定时器、计数器和数据寄存器的内容。   ④用触摸屏键盘把设定数据送入PLC的数据寄存器中。   可规纳成触摸屏与PLC问对应地址的数据位、字的读和写。因此可以利用MOD—BUS通信协议来实现触摸屏与单片机的通信和控制,或触摸屏与多台单片机通信,构成一个集散控制系统。   1 触摸屏与单片机的硬件联接   采用
[单片机]
触摸屏与<font color='red'>单片机</font>的通信实现
C8051F350单片机实现气体流量计检测仪的设计
气体流量计是较为常用的仪表设备。钟罩式气体流量标准装置是以空气作为介质,对气体流量计进行检定、校准和检测的计量标准装置。主要适用于速度式、容积式和差压式等气体流量计的检定、校准和型式评价工作,也可用于气体流量测量的研究工作。本文基于C8051F350单片机,改造现有的钟罩装置,设计一种气体流量计检测仪。 气体流量计检定技术概述 目前,气体流量计的检定方法广义上可分为直接测量和间接测量两种。 直接测量法的是用实际流体进行计量检定,其具体定义为用标准装置(标准流量计或计量器具)与被测流量计串联,通过比较两者测得流体的累积流量值,得出被测流量计测量误差的方法。实流检测法具有检定环境与工况环境一致、流量值准确可靠和真实反映被测流量计计
[单片机]
C8051F350<font color='red'>单片机</font>实现气体流量计检测仪的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved