当前位置:首页 > 单片机 > 单片机
[导读]引言近年来,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模拟外部慢速设备的时序实现与其外设的接口这种方法是一种简单有效的方法,并为各种系统显示、慢速外设的接口设计提供了一种可以借鉴的方法。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭