当前位置:首页 > 嵌入式 > 嵌入式硬件

1 引言

嵌入式系统已经发展成为应用最广的计算机系统。SoC(System on a Chip)则是嵌入式系统的研究和开发热点。SOC的核心概念是把整个系统集成到一片半导体芯片上。目前SoC的中文名称还不统一,可被叫做集成系统芯片、系统芯片或片上系统等。基于可编程器件FPGA(Field programmable Gate Arrays)的SoC可被称作SoPC(System on a Programmable Chip)或PSoC(Programmable SoC)。基于FPGA的设计为可重配置(reconfigurable)的SoC的开发带来了方便。SOC运用现代计算机和微电子学的高技术,实现单片系统集成,减小了体积、提高了运行效率、增强了可靠性、降低了功耗、减少了成本,因此被称作嵌入式系统应用的理想结构和高端形式。 IP(IntellectualProperty)是SoC设计不可或缺的部分。在某种程度上,可以说SOC=MP+IP。微处理器MP(Microprocessor)是SOC的核心。IP是SOC各种功能实现的模块。IP模块也被称作IP核,IP核又可分为硬核、软核、固核。由于SOC是针对某种应用或对象设计的专用系统,系统的实现很大程度上依赖于功能模块的设计。此外,许多MP核可以在市场上买到。因此,IP模块的开发已成为许多用户设计SOC的主要工作。 本文侧重于介绍IP模块中组件控制器的设计和实现。一个基于FPGA的LCD控制器设计作为例子被介绍。这个组件控制器设计属于固核IP设计,也就是软硬结合的方法。设计内容主要包括电路结构、VHDL框架和仿真结果。该设计实现了面向可重配置SOC的单指令驱动LCD操作。2 SoC组件与组件控制器 SoC组件是SoC为实现某种操作功能所需要的器件或设备。这些组件可以是内部的也可以是外部的,如LCD、键盘、设备驱动器等是外部组件,电子转换器、变换器、放大器等则属于内部组件。无论是内部,还是外组件,其控制单元都要被设计在SOC内部。作为一个系统的核心,SOC要完成运行、操作或控制功能,必须有相应的组件配合。而多数组件,尤其是外部组件在SOC内都要有一个对应的控制器。所以,为了实现应用对象操作,SOC要设计相当数量的组件控制器。组件控制器的设计,对SOC而言就是一些IP模块的设计。 SoC与外部组件的基本关系见图1。相对于外部组件而言,SoC由微处理器核MP(microprocessor)和相关的控制器IP构成。为了得到最优的控制效率,SoC的MP常常被设计成可重配置(reconfigurable)的MP。这意味着用户可对MP的一些配置进行修改和添加以适应应用系统的需要,如用户可以对MP的指令系统进行重新配置,设计加入用户需要的专用指令。为了区别于一般的MP,图1中的给出了SoC-MP来代表用于SoC的MP核图1 SOC与外部组件的基本关系 SoC的组件控制器与专用指令配合可以实现一些复杂操作的单指令运行,从而大大提高了SOC应用系统的操作速度和运行效率。这也正是嵌入式系统的专用设计特性和高效控制优势的体现。 尽管SoC的IP核分为硬核、软核、固核,对于非专业集成电路设计的用户来说,多数采用基于FPGA的设计方法。实际上也就是软硬结合的IP固核设计。本文介绍的是一种用VHDL硬件描述语言在FPGA上设计SOC外部组件控制器IP的方法。3 LCD控制器的设计 液晶显示器LCD(Liquid Crystal Display)是SoC的一种外部组件,会经常被用到。为了实现SoC对LCD的高效管理,要设计一个LCD控制器IP模块。这个模块被命名为lcd_fct。外部组件LCD与SOC的关系与控制结构可参考图2。 对照图1可以看出,图2中的lcd_fct是外部组件控制器IP,它位于LCD和MP之间,通过数据(data)、地址线(address)、控制(control,write_e)和信号线(lcd_busy)等与MP和LCD建立联系。图2 外部组件LCD的SOC控制结构 在这个设计中对LCD控制器lcd_fct的要求是:lcd_fct接受来自MP的指令,如初始化、清屏和显示等。lcd_fct按照指令的要求产生一系列控制信号和相应的时序来控制LCD模块完成相应的操作。实际上,lcd_fct对LCD模块的操控主要包括LCD初始化、清屏、传送显示数据和地址。 当lcd_fct的输入信号reset是低电平时,复位电路(ResetCircuit)开始工作,进行初始化操作、对标志和状态清零、设定相关常数等。 时钟调节电路(ClockRegulator)主要为定时器提供具有高质量波形的时钟。为满足运行中不同时序的需要,lcd_fct中设计了微秒定时器(μsTimer)和毫秒定时器(msTimer)。定时的时间常数被放在时间常数寄存器(TimeConstantRegister)中。 从MP来的地址(addrin)和控制(write_e)信息被送到译码器(Decoder)。译码器根据不同的地址和控制信息产生相应的指令标志,如复位、清零等。并把指令标志送给控制电路(ControlCircuit)。 控制电路(ControlCircuit)是lcd_fct的核心。它控制数据输入寄存器(Data_inRegister)、数据输出寄存器(Data_outRegister)、状态寄存器(StateRegister)、控制寄存器(ControlRegister)和时间常数寄存器(TimeConstantRegister)。控制电路根据指令标志和时序来操作不同的寄存器,实现lcd_fct的管理和运行。 数据输入寄存器接受来自MP的数据并根据需要送数据到数据输出寄存器。数据输出寄存器把数据通过数据线lcd_db送到LCD模块的数据总线上。这个数据既可能是要显示的数据,也可能是指令。 控制寄存器产生操作LCD的控制信号,如LCD中选信号(lcd_e)、LCD内部寄存器选择信号(lcd_rs)和LCD读写信号(lcd_r_w)。 状态寄存器在LCD处于工作下,会产生LCD繁忙信号(lcd_busy)。这意味着,LCD此时不会接受其它指令。与其它信号不同,lcd_busy是发送给MP的。 实际上lcd_fct的运行操作主要是对各种控制、状态和数据信号进行管理。4 FPGA设计和仿真 在lcd_fct的FPGA设计中,主要采用的VHDL语言的程序设计[7]、MAXPlus-II仿真以及SOC和LCD的实际连接调试。lcd_fct的HVDL设计框架如下:LibraryEntity lcd_fct is Port();End lcd_fct;Architecture struct of lcd_fct is Signal ConstantBeginRes: process;Clk: clk_div;LCD: process;BeginIf init then Initialization;Elsif clr then Clear LCD;Elsif addr then Write address to LCD RAM;Elsif data then Write data to LCD RAM;End if;End process;Us: ustimer;Ms: mstimer;End truct;LCD控制器IP模块lcd_fct的仿真结果如图3所示。在图中左侧的信号就是lcd_fct的输入/输出信号。图3 lcd_fct的功能仿真 当把write_e设置成高电平时,指令写入lcd_fct。对于读写控制信号lcd_r_w来说,低电平为写操作,高电平为读操作。由于该仿真都是lcd_fct对LCD进行写操作,lcd_r_w始终为低电平。图中通过addrin的变化来代表不同的指令。 在addrin等于7FFF时,lcd_db被赋值01。这意味着LCD被清屏。当addrin等于7FFE,且data_in送入31时,lcd_db被赋值31,LCD就会显示“1”。Addrin被设置成7FFD,且data_in等于8时,被显示的字符将出现在显示屏的第8个字符的位置,实现了定位显示功能。 当addrin被赋值7FFC时,LCD被初始化。初始化包括功能设置、关闭显示、打开显示、清屏、显示移位和工作方式设置等操作。 由此可见,只要在SOC的MP中加入适当的指令,可以对addrin进行控制,SOC就可以完成对LCD的管理。由于本设计中SOC的MP是可重配置MP,添加或修改指令是不存在问题的。仿真表明,lcd_fct的设计达到了设计目标,操作结果是令人满意的。一般的LCD程序控制完成一项操作(如初始化)需要执行多条软件指令。用FPGA设计的lcd_fct只要一条指令就能完成相应的操作,而且是硬件运行,效率提高了许多倍。5 结论 组件控制器的设计是SOC设计的重要组成部分。采用FPGA是完成组件控制器设计的有效手段。通过LCD控制器的设计和仿真,说明基于FPGA的组件控制器可以用一条指令完成原来许多条指令才能完成的操作,可以大大提高系统的运行效率。因此,这是一项有意义的工作。 本文作者创新点在于把FPGA设计和SOC的组件控制器联系起来,并通过一个具体例子介绍了如何设计单指令驱动的组件控制器。

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

中国,北京 – 2025年9月10日 – 低功耗无线解决方案创新性领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)今日宣布:其第二代无线开发平台产品组合的最新成员FG23L无线单芯片方案(So...

关键字: 物联网 SoC

毋须依赖实时操作系统(RTOS)的全新低功耗蓝牙开发软件解决方案面世,旨在帮助开发者从传统nRF5 SDK和nRF52系列轻松迁移至新一代nRF54L系列

关键字: 低功耗蓝牙 SoC SDK

在电子电路设计中,确保电源的稳定和安全至关重要。LTC4365 作为一款出色的过压(OV)、欠压(UV)以及反向极性故障保护控制器,在众多领域得到了广泛应用。其能够为电源输入电压可能出现过高、过低甚至负值的应用场景提供可...

关键字: 控制器 栅极 输出电压

Puttshack 的 Trackaball 以 Nordic nRF54L15 系统级芯片 (SoC) 监控传感器并实现低功耗蓝牙连接,并以nPM2100 电源管理集成电路(PMIC)节省耗电

关键字: SoC 传感器 集成电路

2025年8月21日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起开售Silicon Labs全新xG26系列无线SoC和MCU。xG26片上系统...

关键字: SoC 微控制器 物联网

微电子产品的可靠性是评价其质量的关键指标。在微电子组装过程中,由于元器件的微小化和集成度的提高,对组装精度的要求也越来越高。因此,确保组装过程中的可靠性,对于提升产品的整体质量和客户满意度至关重要。

关键字: 微组装 组件

在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业...

关键字: FPGA 核心板 开发板

在现代电子系统中,现场可编程门阵列(FPGA)凭借其开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点,被广泛应用于各种产品领域。从通信设备到工业控制,从汽车电子到航空航天,FPGA 的身影无处不在。为了充分发挥...

关键字: 可编程门阵列 FPGA 数字电源

ZCC3790 作为一款同步 4 开关升降压电压 / 电流调节器控制器,展现出了强大的性能。它能够在输入电压高于、低于或等于输出电压的复杂情况下,精准地调节输出电压、输出电流或输入电流。其恒定频率、电流模式架构赋予了它灵...

关键字: 升降压 控制器 宽电压

2025年8月12日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子(Mouser Electronics) 是Phoenix Contact解决方案的全球授权代理商。贸泽供应超过93,000种可订...

关键字: 楼宇自动化 控制器 连接器
关闭