当前位置:首页 > 单片机 > 单片机
[导读]引言近年来,DSP芯片在高速数据处理中得到了广泛的应用。TMS320F2812是美国德州仪器公司(TI公司)专门为工业应用而设计的新一代DSP处理器。该芯片采用了高性能的32位中央处理器、哈佛总线结构,高性能静态CMOS技术,

引言

近年来,DSP芯片在高速数据处理中得到了广泛的应用。TMS320F2812是美国德州仪器公司(TI公司)专门为工业应用而设计的新一代DSP处理器。该芯片采用了高性能的32位中央处理器、哈佛总线结构,高性能静态CMOS技术,主频最高可达150MHZ(时钟周期6.67ns);具有外部存储器接口XINTF,可扩展多达1MB的存储空间。但是这种高速器件与慢速外设之间的接口产生了问题。一般来说,DSP与慢速外设的接口访问有两种方式:直接访问方式和间接访问方式。间接访问是用DSP的数字I/O口来控制慢速外设,用软件编程来模拟外设的接口时序,加入相应的等待延时来实现;而直接访问是将慢速外设与DSP特定的XINTF区相连,通过增加相应的内部等待状态来实现时序上的匹配。TMS320F2812有多达56个独立的可编程、多用途双向数字I/O口,本文将利用这些I/O口,通过软件编程模拟慢速液晶控制器ST7920的读写时序,实现与液晶通信。

1  FYD12842-0402B液晶显示模块简介 

点阵式液晶显示模块是一种集显示、控制与驱动为一体的显示器件,在设计中我们采用的是成都市飞宇达实业有限公司生产的液晶显示模块FYD12864-0402B,内置ST7920液晶控制器。

FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块。其显示分辨率为128 64,内置8192个16*16点汉字,和128个16*8点ASCII字符集,强大的字库省去了很多自行编码的麻烦;该模块不仅可以显示8 行16 16点阵的汉字,利用其灵活的接口方式和简单、方便的操作指令,还可构成全中文人机交互图形界面;其内置了DC~DC转换电路,无需外加负电压,无需片选信号,简化了软件设计。

总之,由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,具体可以参看FYD12864-0402B的使用手册。

2  TMS320F2812与ST7920的硬件接口设计

2.1  间接硬件接口设计

TMS320F2812与ST7920的间接硬件接口设计如图1所示。ST7920并、串口方式可选,当PSB置高时为并行方式,置低时为串口方式。本例在实际应用中仅使用8位并口的通讯模式,故将PSB接固定高电平。RESET为液晶复位引脚,低电平有效。V0与VOUT以图1中方式相连可以调节LCD的对比度。本设计用TMS320F2812的GPIOA0~7作为数据接口,GPIOB0、GPIOB1分别与RS、R/W相连作为控制信号,其具体控制功能如表1所示。E为ST7920的使能信号,将其与GPIOB2相连,E=1时,配合R进行读数据或指令;当E=1 时,配合/W进行写数据或指令。

图1  TMS320F2812与ST7920的硬件接口电路

另外,在本设计中,TMS320F2812的I/O口只能接受最大3.3V的电压,而液晶的输出电压有5V,因此在两者之间需要进行电平转换。

2.2  DSP与ST7920的软件接口设计

DSP和液晶模块的接口包括2部分操作:DSP读液晶模块状态的操作;DSP向液晶模块写数据和指令的操作。这些操作的实现是参考液晶模块的时序图,产生满足这些时序的接口控制逻辑。液晶的时序图如图2所示。

(b)  ST7920读资料时序图

图2  ST7920读写时序图

其中,TC=1200(MIN),TPW=140(MIN),TR=TF=25(MAX),TAS=10(MIN),TAH=20(MIN),TDSW=40(MIN),TH=20(MIN),TDDR=100(MAX)(单位均为ns)

从时序图可以看出,ST7920的RS、R/W可以同步操作,读写操作是由使能信号E完成的,因此,在软件设计中关键是要设计出合理的E信号,以满足ST7920的读/写时序。要实现对ST7920的正确读写必须使F2812的I/O口模拟时序注意满足以下条件:

(1)       在读写时,必须使E信号,即IOPB2保持高信号140ns以上

(2)       在写操作时IOPA0~IOPA7的数据必须在E信号变为低电平前保持40ns以上

(3)       在读、写两个数据之间的间隔必须大于1200ns。

此外,ST7920有内部标志忙标志BF,BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据;BF=0时,模块为准备状态,随时可接受外部指令和数据。因此,在送出一个指令前需检查BF标志位,如不检查,则在前一个指令和这个指令中间必须延迟一段较长的时间,等待前一个指令确定执行完成。从程序的可移植性和通用性方面考虑,本设计选用了C语言进行软件模块的设计实现。另外,在软件的编写上采用了结构体、共用体的方法,以结构体成员的形式来访问寄存器的某一位或者某几位。相比以前使用的宏定义方式,这种方式实现了对寄存器位域的独立访问,为寄存器提供了更加灵活和高效的访问手段,也大大提高了代码的可读性、可靠性和可维护性。现给出程序如下:

void writeINS (int INS )  //DSP向液晶写入命令

{

checkBF();//测试BF位是否忙

EALLOW;

GpioMuxRegs. GPADIR.all=0x00ff;//设GPIOA0~7为输出引脚

EDIS;

GpioDataRegs. GPBDAT.bit.GPIOB0=0;

GpioDataRegs. GPBDAT.bit.GPIOB1=0;//写指令到LCD,RS=0,R/W=0

GpioDataRegs. GPADAT.all=INS;//输出指令

GpioDataRegs. GPBDAT.bit.GPIOB2=1;//E=1

Delay1();//延时140ns以上

GpioDataRegs. GPBDAT.bit.GPIOB2=0;//E=0,指令写入LCD

}

void  writeDATA(int data) //向液晶写入数据

{

checkBF();//测试BF位是否忙

EALLOW;

GpioMuxRegs. GPADIR.all=0x00ff;//设GPIOA0~7为输出引脚

EDIS;

GpioDataRegs. GPBDAT.bit.GPIOB0=1;

GpioDataRegs. GPBDAT.bit.GPIOB1=0;//写数据到LCD,RS=1,R/W=0

GpioDataRegs. GPADAT.all=data;//输出数据

GpioDataRegs. GPBDAT.bit.GPIOB2=1;//E=1

Delay1();//延时140ns以上

GpioDataRegs. GPBDAT.bit.GPIOB2=0;//E=0,数据写入LCD

}

void  checkBF()//检查BF位,判断LCD 是否忙

{

unsigned int check

EALLOW;

GpioMuxRegs.GPAMUX.all=0xff00;//设EVA前8脚为通用I/O口,其他为保留功能

GpioMuxRegs.GPBMUX.all=0xff00;//设GPIOB0~2为通用I/O口,其他为保留功能

GpioMuxRegs. GPBDIR.all=0x00ff;// 设GPIOB0~2为输出引脚

EDIS;

GpioDataRegs. GPBDAT.bit.GPIOB0=0;

GpioDataRegs. GPBDAT.bit.GPIOB1=1;//读BF的状态,RS=0,R/W=1

do {

GpioDataRegs. GPBDAT.bit.GPIOB2=1;//E=1

Check=GpioDataRegs. GPADAT.all;

Delay1();//延时140ns以上

GpioDataRegs. GPBDAT.bit.GPIOB2=0;//E=0

check=0x80✓//当第7位,即BF为0时才可以操作

}while(!check= =0x00);

}

void InitialLCD()//液晶初始化

{

writeINS(0x30);//LCD选择为8位并行数据传输,不扩充指令

Delay2(5);//延时大于100us

writeINS(0x0E);//开显示,开游标,关反白

Delay2(5);//延时大于100us

writeINS(0x01);//清屏显示

Delay2(500);//延时大于10ms

writeINS(0x06);//DDRAM的地址计数器(AC)加1

Delay2(5);//延时大于100us

}

void  Delay1()//延时子程序

{

Int i;

for ( i=0;i<5;i++ );

}

void  Delay2(unsigned int nTime)

{

int ii,jj,kk=0;

for ( ii=0;ii<nTime;ii++ )

{

for ( jj=0;jj<215;jj++ )

{

kk++;

}

}

}

欲在ST7920中某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。当字符编码为两字节时,应先写入高位字节,再写入低位字节。ST7920的字符显示地址RAM地址从80H到9FH,与4行8列共32个字符显示区域一一对应。另外,显示ASCII字符过程与显示中文字符过程相同,不过在显示连续字符时,只须设定一次显示位置,有模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。本文以从字库中显示“液晶”字样为例,给出显示“液晶”字符的主程序如下:

main()

{

InitialLCD();//初始化液晶

writeINS(0x80);//设定显示地址为首行首列

writeDATA (0xD2);

writeDATA (0xBA);//显示“液”

writeDATA (0xBE);

writeDATA (0xA6);//显示“晶”

for(;;);

}

3 结论

从上面的应用介绍可看出,本文所采用的方法不需要增加硬件,电路结构简单,只占用了TMS320F2812的多达56个I/O引脚中的11个。所以,对剩余较多不用I/O引脚的DSP系统完全可以采用这种接口控制方法,绝大多数下是可以满足要求的。通过该设计我们可以说,采用TMS320F2812模拟外部慢速设备的时序实现与其外设的接口这种方法是一种简单有效的方法,并为各种系统显示、慢速外设的接口设计提供了一种可以借鉴的方法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭