基于S3C2410X处理器和单片机实现多磁控管电源控制的设计方案

发布者:Mengyun最新更新时间:2023-01-05 来源: elecfans关键字:S3C2410X  处理器  单片机 手机看文章 扫描二维码
随时随地手机看文章

1、电路硬件整体设计

设计主要包括3个模块:1,人机交换模块(S3C2410芯片扩展电路)、2,功率输出模块(ATmega16L芯片扩展电路)、3,磁控管工作电路。人机交换模块主要用来接收使用者的命令数据,再传递给功率输出模块输出给定功率。同时接收功率输出模块电路中功率反馈回来的信息,使得使用者能对相应信息做出处理。整体框架如图1—1所示:

基于S3C2410X处理器和单片机实现多磁控管电源控制的设计方案

1.1基于S3C2410X处理器的控制电路设计

控制系统中采用韩国三星半道体公司的S3C2410X处理器作为主控制芯片。SBC2410X是一款基于ARM920T内核的16/32位RISC嵌入式微处理器,高性价格比,低功耗。应用该芯片作为主控制芯片,并扩展64M SDRAM、64M Nand Flash、1M的Nor Flash、标准串口、用户按建、液晶屏接口、JTAG模块、以太网接口(如图1—2所示)。

o4YBAGBG8uiALGJMAABxnpH6J9c813.png

1.2 基于ATmega16L单片机功率输出电路设计

从芯片采用AVR系列单片机ATmega16L。ATmega16具有丰富的片内资源,其中包括:16k字节的在线编程,应用编程Flash程序处理器,512字节EPROM,1K字节SRAM,32个通用工作寄存器,32个通用I/O口,3个定时/数据器,20个中断源,2个可编程串口USART,15种通过软件选择的节电模式。


主从芯片模块之间通过各自串口进行数据的交互。具体上说,主电路模块发送数据给从芯片模块,从芯片根据输入数据产生相应波形,以得到对应的输出功率。同时从芯片应用采集电路模块,采集实际功率反馈到主芯片,由主芯片将数据交给用户管理,必要时候会发出警告信息,达到保护电路的作用。


2、驱动程序的编写和Linux内核的裁剪

设计采用Linux操作系统作为操作平台。从Linux系统发展的过程来看,Linux从最开始就是一个开放的系统,并且遵循着源代码开放的原则,它是一个稳定的网络操作系统,作为嵌入式系统有如下优势。


(1) Linux的源码开放性允许任何人可以修改它的源代码。这样可以降低开发的成本,另一方面可以提高开发成本。(2) Linux支持X86、ARM、MIPS、SH等多种体系结构,并且已经移植到多种硬件平台。(3)Linux有独特的内核模块机制,它可以根据用户需要,实时的将某模块插入到内核或者从内核中移走。(4)linux系统内核精简、高效和稳定,能够充分发挥硬件功能,因此比其他操作系统运行更高效率。(5)Linux是首先支持TCP/IP协议栈的操作系统,它的内核在网络方面非常的完。

因为嵌入式开发的目标环境针对特定的操作系统,因此采用宿主机/目标机的方式,在PC机上装Linux操作系统,建立交叉编译环境arm-gcc。然后为设计系统硬件编写特定驱动程序,主要包括显示模块和串口通讯模块的驱动功能。


2.1液晶显示模块完成人机友好界面的数据驱动,对图形具有显示能力,设计中采用模块化的方法设计驱动程序。液晶显示驱动程序设计的内容如下:

(1)首先对驱动程序管理的硬件进行必要的初试化。(2)初始化设备相关的参数。(3)在内核中注册设备。其中涉及到重要的结构体为:static struct fb_ops s3c2410fb_ops;(4)其他的初始化工作。int __init s3c2410fb_init(void);int __init s3c2410fb_setup(char *options)。


2.2串口通讯完成主控芯片发送数据和命令给从芯片,使从芯片完成端口的波形输出,通过输出的波形控制大功率设备的功率。同时大功率设备通过测量电路反馈实际功率给从芯片,从芯片通过串口发送数据给主控芯片显示正确的功率数据,方便用户查看。串口驱动的设计内容:

(1)初始化串口相关的硬件设备。涉及到重要的结构体为:

static struct tty_driver normal, callout;

static struct tty_struct *s3c2410_table[UART_NR];

static struct termios *s3c2410_termios[UART_NR];

static struct *s3c2410_termios_locked[UART_NR]。

(2)注册中断服务程序。接受中断服务程序:

static void s3c2410uart_rx_interrupt(int irq, void *dev_id,,struct pt_regs *regs);

发送中断服务程序:

static void s3c2410uart_tx_interrupt(int irq, void *dev_id, ,struct pt_regs *reg);

(3)在内核中注册设备。uart_register_driver(&s3c2410_reg)。

(4)设备的加载和卸载。module_init(s3c2410uart_init);module_init(s3c2410uart_init)。

设计好硬件驱动程序后,为控制主芯片裁剪Linux内核以适合控制设备的需要。进入PC机Linux操作系统,进入ViVi原代码目录,执行“make menuconfig”命令开始配置内核。配置完毕以后再执行“make”命令便宜ViVi。将ViVi的映像文件通过JTAG烧写到设计好的硬件电路板中。


进入Linux内核文件中执行“make menuconfig”命令开始配置Linux内核文件,选上要使用的驱动选项并根据电路板实际芯片模块配置内核,最后使用“make”命令编译内核文件。如果编译出问题需要修改内核文件。编译成功以后通过串口将生成的映像文件下载到电路板中。之后ViVi 就可以启动下载好的内核文件。内核的设计及其调试流程图2—1。

o4YBAGBG8vaAH8t2AACZ5e3180Y496.png

3、基于QT的主芯片控制系统程序设计和从芯片程序设计

图形用户界面GUI是迄今为止计算机系统中最为成熟的人机交互技术。不同于桌面系统,嵌入式GUI所具备的特点:

*体积小;*运行时耗用的系统资源小;*上层接口与硬件无关,高度移植;*高度可靠性;

在开发中,考虑到问题主要集中在图形用户界面对硬件的要求,设计中提供给用户的最终界面是简单的实用性。


设计中采用挪威TrollTech公司提供的嵌入式开发平台QT/Embedded,做为本设计的软件开发平台。该平台以C++语言作为开发语言,其核心被称作信号与槽的机制。设计中,主芯片主要完成把数据显示在液晶模块上,让用户直观的控制设备的运行状况。同时还要把用户设定的功率发送给从芯片,使从芯片输出功率的波形。利用QT自带类QLCDNumber可以完成此工作,其中继承了显示相关的许多功能。图形控件布局采用类QWidget,时间的计算显示采用类QTimer。通讯模块中采用Linux内核函数cfsetispeed()进行波特率的设定,利用串口重要数据结构体struct termios Opt对串口的校验位,停止位进行相应的设定,达到发送和接收数据的目的。图3—1显示主芯片程序设计流程。


从芯片采用中断方式接收主芯片发送过来的数据,并对接收过来的数据进行处理后,在端口引脚输出波形,波形经过输出电路产生适合大小的功率。同时从芯片不断的接收采集模块采集的电流数据,并对数据进行处理,再通过串口发送给主芯片,显示在主芯片的液晶模块上,提供给用户监控,并可以对危险信号进行处理。

o4YBAGBG8v2ADh57AACUoNAy3D4869.png

4、控制系统的软硬联调

将编写好的主芯片程序应用交叉编译器进行编译,产生二进制代码,应用网络下载到主电路板中。同时把程序所关联的库文件和联结文件通过网络下载到主电路板Linux内核的对应位置并进行相应链接。


编写好的从芯片程序用编译器编译生成二进制代码,并烧入芯片的Flash中,以使得代码固化在芯片中。


为了检查设计电路测量和输出的准确性,需要验证给定功率、实际功率、显示的反馈功率之间的大小关系。最后实验显示:给定功率=计算实际功率=显示的反馈功率,证明设计的基于Linux控制系统能准确的运行,设计达到了性能要求。


5、结语

设计后的控制系统具有友好的图形操作界面,操作简便、直观。设计采用主、从二芯片的方案达到远程控制的优点,又保障了操作人员操作的安全性。

基于嵌入式Linux操作系统的控制系统设计运行稳定,实时性高。软件设计中加入对危险信号的处理达到保护设备的目的,运行安全、可靠性增强、实时性高,将有利于用户及科研机构的使用。


本文作者创新点:

1,采用嵌入式系统的方法设计电源控制系统,具有实时性和稳定性的特性。

2,国内对于多磁控管的设计方案较少,本论文提供了一种多磁控管电源控制的设计方案。


关键字:S3C2410X  处理器  单片机 引用地址:基于S3C2410X处理器和单片机实现多磁控管电源控制的设计方案

上一篇:s3c2410/2440(armv4t) 移植Android
下一篇:基于S3C2440A和WinCE 4.2操作系统实现数字寻北仪的应用方案

推荐阅读最新更新时间:2024-11-11 17:16

自动驾驶中的DCU、MCU、MPU、SOC和汽车电子架构
近年来,SDV(Software Define Vehicles,即软件定义汽车) 概念逐步被整车厂认知,根源在于 “汽车如何体现差异化”问题的变迁,随着电动化带来的汽车电子构架革新,汽车硬件体系将逐渐趋于一致,如何构建通用化硬件,成为实现软件软件定义汽车的前提基础。只有把硬件通用化,差异化减少,才能减少对软件适配的成本,做到真正的软件定义汽车。 下图为博世2017年在一汽车会议上分享的其在整车电子电气架构方面战略图。整车电子电气架构发展分为了六个阶段:模块化阶段- 功能集成阶段- 中央域控制器阶段- 跨域融合阶段- 车载中央电脑和区域控制器- 车载云计算阶段。 01 分布式电子电气架构
[汽车电子]
8051单片机指令定义详解——ADDC A,(3)
8051单片机指令定义详解 (ADDC A, src-byte ) ADDC A, src-byte 功能:带进位的加法。 说明:执行ADDC指令时,把src-byte所代表的源操作数连同进位标志一起加到累加器A上,并将结果置于累加器A中。根据运算结果,若在第7位有进位生成,则将进位标志置1,否则清零;若第3位有进位生成,则置辅助进位标志为1,否则清零。如果是无符号整数相加,进位的置位显示当前运算结果发生溢出。 如果第6位有进位生成而第7位没有,或第7位有进位生成而第6位没有,则将OV置1,否则将OV清零。在进位有符号整数相加运算的时候,OV置位,表示两个正整数之和为一负数,或是两个负整数之和为一正数。 本
[单片机]
51单片机c语言---延时
1,_nop_() 适用于us级的少量延时 标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。 这在汇编语言中很容易实现,写几个nop就行了。 在keil C51中,直接调用库函数: #include intrins.h // 声明了void _nop_(void); _nop_(); // 产生一条NOP指令 作用:对于延时很短的,要求在us级的,采用 _nop_ 函数,这个函数相当汇编NOP指令,延时几微秒。 NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。 2,一般延时大于10us 一,定义的C51中循环变量,尽量采用无符号字符型变量。 二,
[单片机]
单片机汇编实验八:查表+串口通信
实验要求:P1口的P1.0~P1.8分别接8个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L4,L5亮,第二秒钟L3,L6亮,第三秒钟L2,L7亮,第四秒L1,L8亮,第五秒L2,L7亮,第六秒L3,L6亮,第七秒L4,L5亮,第八秒L1,L2,L7,L8亮,第九秒L3,L4,L5,L6亮,第十秒全亮,第十一秒全灭。然后再从头循环。以键盘作为外部中断输入信号,有键按下时,将当前LED状态送PC机显示。 //This is the nineth_5 program of homework //This is made by WQ Data:2013/3/18/ ORG 0000H AJMP MAI
[单片机]
单片机固件被破解
什么是单片机解密? 单片机(MCU)一般都有内部程序区和数据区(或者其一)供用户存放程序和工作数据(或者其一)。为了防止未经授访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。 如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就叫单片机加密。(BugPS:单片机程序基本上都存在于Flash中,大部分能够读取或者识别Flash上的数据就能够获得Firmware文件,从而给复制产品带来了机会) 单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序这就叫单片机解密。 单片机解
[单片机]
浮点数传送--MCS-51单片机实用子程序
FMOV 功能:浮点数传送 入口条件:源操作数在 中,目标地址为 。 出口信息: = , 不变。 影响资源:A 堆栈需求: 2字节 FMOV: INC R0 INC R0 INC R1 INC R1 MOV A,@R1 MOV @R0,A DEC R0 DEC R1 MOV A,@R1 MOV @R0,A DEC R0 DEC R1 MOV A,@R1 MOV @R0,A RET
[单片机]
基于STC89C52单片机的智能花盆设计案例
项目名: 基于单片机的智能花盆设计 单片机:STC89C52 功能: 1、通过显示屏显示花盆中土壤的温度、湿度,花盆外光照强度; 2、通过按键切换显示屏的界面,设置土壤最小温度值、最小湿度值,花盆外光照强度值,输液倒计时,松土倒计时; 3、通过土壤湿度传感器检测土壤湿度,通过DS18B20检测土壤温度; 4、通过继电器控制加热片,水泵,输液,补光灯; 5、通过步进电机来实现松土; 部分程序: #include main.h #include lcd1602.h #include key.h #include ds18b20.h #include adc.h #include motor.h #include t
[单片机]
基于STC89C52<font color='red'>单片机</font>的智能花盆设计案例
DC/DC转换器效能提高,使降低移动处理器效能有望
行动装置处理器功耗过高问题,可望藉由提升直流对直流(DC-DC)电源转换器效能获得改善。具有更低暂态响应的DC-DC电源转换晶片,由于输出电压不易产生波动,有助行动装置处理器能在稳定的低电压下运作,进而达到省电的目的。 因此,为保证处理器所能达到的效能,直流对直流电源转换器通常需要在较高的电压状况下运作,而不是如理想状况那般,尽可能以最低的电压状况下运作。 有鉴于此,在开发处理器时,为延长宝贵的电池寿命而耗费许多人力完成的设计,可能会因为驱动处理器的是一个不合标准的直流对直流电源转换器而白白浪费,这个直流对直流电源转换器的暂态效能,及精确性可能都有不足之处。 透过本文的描述,将可看到一个内建暂态效能很好的直流对直流电源转换器,
[电源管理]
DC/DC转换器效能提高,使降低移动<font color='red'>处理器</font>效能有望
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved