4.其他外部设备的设计
GS32I处理器提供48个GPIO口,其中22个专用,48个GPIO中的32个由主GPIO块控制,另外16个是次级GPIO口。每个GPIO口可以被配置作为输入或输出,并且能够连接到内部中断控制器对输入的信号产生一个中断。本设计中采用GPIO管脚作为外设的数据信号和控制信号。
(1) 串口的设计
RS232收发器使用MAXIM公司的MAX3232,采用最简单的三线制接法,即地、接收数据和发送数据三脚相连,原理图如下所示:
图5 串口电路原理图
(2) 键盘驱动和数码显示驱动
4×4键盘和四位LED显示用于人机交互。4×4小键盘采用专用的键盘译码芯片74C922,中断方式连接,通过GPIO1触发中断。显示模块是四位共阴极LED七段数码管,段码通过共阴极数码管驱动器74LS248驱动,位码用74LS373寄存器送数据。这个设计比较简单,限于篇幅,略去原理图。
(3)A/D和D/A转换模块的设计
A/D 和D/A使用封装小,功耗低,且能满足高速采样系统的串行转换器,这样适合嵌入式系统的要求。串行A/D和D/A转换器发送与接收数据是通过GS32I的GPIO口来实现的。本设计中用次级GPIO口作为串行数据的输入输出,主GPIO产生中断。
A/D转换器使用的是AD 公司的高速12 位A/D 转换器AD7896, 转换速率为100kHz, 单电源供电(2.7V~ 5.5V )。首先通过八选一开关74HC4351输入模拟量,通过GPIO口GPIO2O2写CVRT#W为低电平,开始模数转换。由于CVRT#信号要求至少保持40ns,所以GPIO2O2通过74LS123展宽为40ns后再输入至CVRT#。转换完成后,通过GPIO0信号触发中断,CPU通过GPIO口的GPIO201串行接收数据,整个转换周期只需10us。
D/A转换器采用12位数模转换器AD8300,GS32I通过GPIO口串行发送数据到AD8300。由于AD8300接收12位数据要求CS#至少保持720ns,所以提供片选的GPIO207通过74LS123后再接至AD8300的CS#端。数据发送完成后,通过GPIO口GPIO206发送一个信号到AD8300的LD#,把串行输入寄存器的数据送到AD8300的DAC寄存器,开始进行数模转换。
此外,GS32I根据 MIPS EJTAG 2.5规范实现了EJTAG,并提供其外部接口。从而实现调试和执行调试能力的软硬件子系统。
四. 结束语
对于使用国产芯片开发嵌入式产品的研究在我国还是刚刚起步,可以借鉴的开发资料和经验还不多见,希望本文所介绍的基于龙芯GS32I小系统的硬件设计可以对使用国产芯片进行嵌入式研究的人员具有一定的参考价值。
本文作者的创新点:使用龙芯GS32I自行设计了嵌入式开发板,选择嵌入式Linux操作系统,配合相关驱动程序和上层应用程序,可以实现各种电子产品的开发。使用国产芯片开发的产品在政府部门、军事、国防等安全性较高的领域有广阔的应用前景。
参考文献
1. 基于嵌入式系统的虚拟仪器设计,程兴亚,《微计算机信息》2004年第12期
2. GS32I_NC_TVIA5005硬件手册 北京神州龙芯集成电路有限公司 2004
3. http://www.blxcpu.com 北京神州龙芯集成电路有限公司 2005-07-1
4. GS32ITM Processor from BLX Data Sheet北京神州龙芯集成电路有限公司 2004