基于Nios嵌入式软核处理器的液晶显示屏的设计方案
LCD液晶显示满足嵌入式系统日益提高的要求,特别在工业控制和消费电子领域,具有稳定可靠、成本低、功耗小、控制驱动方便、接口简单易用、模块化结构紧凑、体积小和重量轻等优点。Nios Ⅱ是一种可配置的16/32位RISC处理器,它结合丰富的外设专用指令和硬件加速单元可以低成本地提供极度灵活和功能强大的SOPC 系统,开发者根据实际需要自行整合。Altera 公司所有主流FPGA 器件都支持Nios Ⅱ。将LCD驱动与Nios Ⅱ相结合可以得到一个扩展性强、通用的IP核,从而解决不同型号液晶屏之间的驱动差异问题。
1 NiosⅡ软核处理器和SOPC
设计NiosⅡ核用占用不到一半的FPGA 资源,可计算增加1 倍以上的信息。NiosⅡ嵌入式处理器性能超过200 DMIPS,32 位数据和地址、采用32 位指令、32 个外部中断源和32位通用寄存器;Nios Ⅱ支持几十个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合。
现在,在一片FPGA芯片上可以实现如MCU、DSP、PCI总线控制和各种控制算法等复杂的功能。FPGA芯片密度已达到百万门级,由于FPGA芯片密度的提高和EDA开发工具的不断更新,利用FPGA器件实现SOC已成为可能,这项技术称为嵌入式SOPC技术。SOPC技术既具有基于ASIC 的系统级芯片设计的特征,又具有基于模板级设计的特征,具有了可重构性、高效自动化的设计方法。Altera推出的Nios Ⅱ为设计者提供了FPGA优化的嵌入式处理器,以及为SOPC设计了一套综合解决方案。
Nios Ⅱ处理器具有完善的软件开发套件,包括集成开发环境(IDE)、编译器、MC调试器、TCP/IP协议栈和实时操作系统(RTOS)。设计者能够用Altera Quartus Ⅱ开发软件中的SOPC Builder系统开发工具创建用户定制的CPU 和外设电路,获得设计需要的处理器系统。
利用SOPC Builder开发工具创建专用的处理器系统,需要进行SOPC 的嵌入式处理器芯片内部资源的选择和软件设计。SOPC Builder工具通过加载Nios Ⅱ软核和外围接口的定义来配置一个高集成度的SOPC 系统的嵌入式处理器芯片。
图1 是一个液晶显示的SOPC 系统的Nios Ⅱ处理器,主要端口包括复位信号、全局输入时钟和一些I/O端口。因Nios Ⅱ是在FPGA芯片内实现的,那么它既可以通过FPGA的引脚连到外部设备,也可以直接连到FPGA芯片内的其他电路上。FPGA 片内未被使用的资源仍然同样可以被配置成为其他的模块使用,从而实现系统的SOC集成。

2 液晶屏控制器的选择
这里使用的是一块YM12864J的液晶显示模块,它已集成了SED1330作为液晶显示屏的控制器,与同类产品相比其主要特点有:
(1)有较强功能的I/O控制器;
(2)指令简单;
(3)8位并行I/O口;
(4)文本和图形方式混合显示。
YM12864J的I/O接口见表1.

3 FPGA 与LCD 的接口电路
本设计选择的液晶显示屏已经和控制器集成在了一起,外围电路就比较简单,只有FPGA 芯片和液晶控制模块的连接。这里有两种方案可以考虑,第一种是把液晶显示模块当作外部存储器,利用Ext_Shared_Bus的数据和地址总线对其进行控制;第二种是把LCD 接口当作普通的外部设备GPIO进行操作,通过对I/O口的操作来控制LCD 的数据以及读、写使能,片选。一般地,对于不太复杂的系统,把外部设备看作是普通PIO是比较简单的方法,所以在这里采用第二种方案,Nios 与LCD模块的接口电路如图2所示。

4 系统软件设计
系统硬件上电复位后,初始化函数会对硬件层进行初始化配置,包括I/O口的方向配置。在对系统硬件层正确的初始化以后,可以通过Nios 将数据直接送至SED1330显示缓冲区,应用层函数会对液晶的控制器发送控制命令和显示数据,然后液晶屏就会显示用户想要显示的内容,本设计应用层设计了一些基本的显示函数,可以显示字符,汉字和简单的图形,用户只需调用一些显示函数就可以显示内容,系统的软件设计流程如图3所示。

该程序主要包括头文件lcd.h 及主程序hello_world.c.
头文件lcd.h的主要程序如下:



当所有代码设计完成并仿真调试成功后,在Quartus Ⅱ软件中将完整的项目进行编译,也就是将硬件配置信息与代码软件信息编译在一起,并通过并口电缆最终下载到EP2C8T144C8芯片中,得到系统显示结果信息清晰,稳定。
5 结语
本文利用SOPC技术实现了基于NiosⅡ嵌入式处理器的LCD 显示系统的设计方案,从方案的设计中可以看出采用NiosⅡ嵌入式软核处理器与使用NiosⅡIDE 集成开发
- NiosⅡ软核处理器的SOPC技术实现数码相框设计(01-16)
- 电源管理技术知识:为多核处理器提升电源效率(12-28)
- 多核处理器应用火热,高整合度电源芯片势在必行(09-22)
- 利用多内核处理器的并行编程能实现视频代码转换(05-06)
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...