基于C8051F和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所示。
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所示。
2.2 液晶显示模块
液晶显示器(LCD)以其微功耗、体积小、显示内容丰富、超薄轻巧等诸多优点,在便携式仪表和低功耗应用系统中得到越来越广泛的应用。
LCD可分为段位式LCD、字符式LCD和点阵式LCD。其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)