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

图2—1、内核调试流程
3、基于QT的主芯片控制系统程序设计和从芯片程序设计
图形用户界面GUI是迄今为止计算机系统中最为成熟的人机交互技术。不同于桌面系统,嵌入式GUI所具备的特点:
*体积小;*运行时耗用的系统资源小;*上层接口与硬件无关,高度移植;*高度可靠性;
在开发中,考虑到问题主要集中在图形用户界面对硬件的要求,设计中提供给用户的最终界面是简单的实用性。
设计中采用挪威TrollTech公司提供的嵌入式开发平台QT/Embedded,做为本设计的软件开发平台。该平台以C++语言作为开发语言,其核心被称作信号与槽的机制。设计中,主芯片主要完成把数据显示在液晶模块上,让用户直观的控制设备的运行状况。同时还要把用户设定的功率发送给从芯片,使从芯片输出功率的波形。利用QT自带类QLCDNumber可以完成此工作,其中继承了显示相关的许多功能。图形控件布局采用类QWidget,时间的计算显示采用类QTimer。通讯模块中采用Linux内核函数cfsetispeed()进行波特率的设定,利用串口重要数据结构体struct termios Opt对串口的校验位,停止位进行相应的设定,达到发送和接收数据的目的。图3—1显示主芯片程序设计流程。www.51kaifa.com
从芯片采用中断方式接收主芯片发送过来的数据,并对接收过来的数据进行处理后,在端口引脚输出波形,波形经过输出电路产生适合大小的功率。同时从芯片不断的接收采



