1 / 20

ASIPP

ASIPP. 基于 ARM-Linux 的电能质量实时监测系统. 报告人:李齐礼 导师:季振山研究员. ASIPP. 总体规划. 第一步:搭建 ARM-Linux 开发环境 第二步: Linux 下 AD 驱动设计与测试(已完成) 第三步:算法设计与数据处理程序编写 第四步: QT 图形界面设计 第五步:系统测试. ASIPP. 电能质量的概念. 电能质量描述的是通过公用电网供给用户端的交流电能的品质。理想状态的公用电网应该以 恒定的频率 , 正弦波型 和 标准电压 对用户供电。在三相交流系统中,还要求各相电压和电流的幅值应大小相等、相位对称且互差 120 度。

Télécharger la présentation

ASIPP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASIPP 基于ARM-Linux的电能质量实时监测系统 报告人:李齐礼 导师:季振山研究员

  2. ASIPP 总体规划 第一步:搭建ARM-Linux开发环境 第二步:Linux下AD驱动设计与测试(已完成) 第三步:算法设计与数据处理程序编写 第四步:QT图形界面设计 第五步:系统测试

  3. ASIPP 电能质量的概念 电能质量描述的是通过公用电网供给用户端的交流电能的品质。理想状态的公用电网应该以恒定的频率,正弦波型和标准电压对用户供电。在三相交流系统中,还要求各相电压和电流的幅值应大小相等、相位对称且互差120度。 但由于系统中各种设备的非线性和不对称性,以及运行操作、外来干扰和各种故障的原因,这种理想的状态并不存在,因此产生了电网运行、电力设备和供用电环节中的各种问题,也就产生了电能质量的概念。

  4. ASIPP 电能质量的概念 从普遍意义上讲,电能质量是指优质供电。但是由于人们看问题的角度不同,所以迄今为止,对电能质量的技术含义仍有不同的认识,一种普遍接受和采用的定义方法是从工程实用的角度出发,给出实际电能参数与理想参数的偏差,其内容包括频率偏差、电压电流偏差、三相不平衡度、电网谐波、电压波动和闪变,以及电压暂降与短时中断等。

  5. ASIPP 系统方案设计 LCD显示 USB接口 电压互感器 S3C6410XH Ethernet 信号调理电路 ADC 电流互感器 RS232 SDRAM FLASH

  6. ASIPP 系统方案设计 本系统采用飞凌公司的OK6410开发板,该开发板采用Samsung S3C6410XH-66处理器,主频667MHz,配置128MB DDR内存,1G Nand Flash。S3C6410处理器内置一个8通道10/12bit ADC,最大采样率1MSPS,模拟输入范围0~3.3V,基本满足了三相电网数据采集的要求。

  7. ASIPP 该方案的优点 1、ARM11采用哈佛体系结构,数据和程序分开存储在两个存储器中,使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,有效的解决了冯诺依曼结构在大量数据处理时的瓶颈问题。 2、ARM11搭配128MB的内存能稳定运行linux操作系统,linux系统级的管理可使ARM具有高性能的多任务处理能力。 3、体积小,功耗低,接口丰富。可在一个板子上完全实现数据采集、数据处理、图形界面显示、鼠标键盘输入、网络传输等功能。

  8. ASIPP Linux下AD驱动设计 Linux把所有的设备都看成文件,即设备文件,应用程序操作设备就像操作文件一样简单,如:open()、read()、write()、ioctl()来操作设备。而驱动的任务是实现与之对应的函数。这里把AD看成是字符设备,需要实现的函数如下:

  9. ASIPP Linux下AD驱动设计

  10. ASIPP Linux下AD驱动设计

  11. ASIPP

  12. ASIPP Linux下AD驱动设计 驱动程序是内核的一部分,因此需要实现模块初始化函数和模块卸载函数。 static int __init adc_init(void); 该函数依次完成:ADC时钟初始化,设备注册,内存映射(把设备物理地址映射到内核虚拟地址空间) static void __exit adc_exit(void); 该函数完成与初始化函数相反的工作,依次完成:释放虚拟地址映射空间,销毁时钟,注销设备

  13. ASIPP Linux下AD驱动设计 open()函数 对设备文件进行open()系统调用时,将调用驱动程序open()函数: static intadc_open(structinode *inode, struct file *filp) 在该函数中注册AD中断服务 request_irq(IRQ_ADC, adc_irq, IRQF_DISABLED, DEVICE_NAME,NULL);

  14. ASIPP Linux下AD驱动设计 release()函数 对设备文件进行close()系统调用时,将调用驱动程序adc_release()函数: static intadc_release(structinode *inode, struct file *filp) 在该函数中释放AD中断 free_irq(IRQ_ADC,NULL);

  15. ASIPP Linux下AD驱动设计 read()函数 对设备文件进行read()系统调用时,将调用驱动程序read()函数: static ssize_tadc_read(struct file *filp, char *buffer, size_t count, loff_t *ppos) 该函数是驱动程序设计的重点函数之一,主要设置ADCCON寄存器来设置参数并开启AD转换,最后把数据从内核空间拷贝到用户空间。

  16. ASIPP Linux下AD驱动设计 ioctl()函数 该函数是特殊的设备控制函数,可以通过它向设备传递控制信息或从设备取得状态信息: static long adc_ioctl( struct file *filp, unsigned intcmd, unsigned long arg) 该函数是驱动程序设计的重点函数之一,主要用于向设备传递控制参数。Linux规定:cmd是一个全系统唯一的命令号(整数),arg是cmd命令的参数,可以是常数,指针等。Linux提供了一些宏来定义cmd命令号来保证系统全局唯一性。

  17. ASIPP 驱动测试结果 8通道空采数据如下:

  18. ASIPP 驱动测试结果 由于开发板的0通道和一个可调电阻连接,如下图,因此可以利用0通道结合可调电阻来测试ADC

  19. ASIPP 驱动测试结果 旋转可调电阻得到的测试结果(每隔一秒读一次):

  20. ASIPP 谢谢!

More Related