历史上的今天
返回首页

历史上的今天

今天是:2026年01月13日(星期二)

正在发生

2023年01月13日 | 基于S3C2440芯片和单片机设计压装数据采集系统的设计

2023-01-13 来源:elecfans

引言

随着经济和社会的发展,我国的工业水平和信息技术水平也得到了飞速发展。其中工业中最为常见的零部件组装和装备压装监测设备也得到了不断的改进。压装的过程其实就是按规定的技术要求将零部件进行组培和连接,使之成为半成品或者成品的工艺过程。如图1所示,就是将两个零部件进行过盈无键组装配合,使之牢固结合在一起。工业中很多机械设备都是通过这种压装方式组合到一起的,包括火车轮对、轴承、汽车发动机、变速器、底盘等关键部件。压装的质量决定了以后产品的使用质量和人民的生命财产都息息相关。我们知道压装质量的评判标准,主要是根据压装过程中压力和位移的变化曲线来确定的。而压力位移曲线的获取这就需要由良好的运行稳定的数据采集系统来提供。基于此,本文提出一种基于UCOS-II的数据采集系统,在保证实时准确的数据的基础上,使整个压装监测设备能准确地实时监测压装曲线,自动判断压装结果,并将结果进行存储和统计。

基于S3C2440芯片和单片机设计压装数据采集系统的设计

1 、压装监测设备系统总述

如图2所示,该压装监测系统主要由两部分组成,第一部分是由主控芯片S3C2440构成核心控制和数据处理单元;它实现压力位移的数据曲线图绘制、数据的分析处理、数据的存储以及人机交互相关功能的实现。第二部分是由C8051f060作为控制单元的数据采集系统,主要的任务是数据实时采集、数据发送、指令的接收以及PLC控制。系统的大概工作流程如下:首先通过人机交互S3C2440发送指令给C8051f060,C8051f060处理指令之后通过PROFIBUS总线实现对PLC的开始或停止等相关操作,当接收到开始指令时,C8051f060会同时采集压装过程的位移和压力数据,并将这些数据实时发送给S3C2440,最后S3C2440会对这些数据进行曲线图绘制、结果判定等操作。


2 、压装数据采集系统

本文的重点是对压装设备的采集系统进行论述。根据上面的系统总述,我们知道该数据采集系统必须达到以下方面的要求。第一,ADC的选择,ADC必须是精度足够高,由于同时采集压力和位移数据,并且采集的数据量很大,所以必须选择多通道的高速高精度AD转换器。第二,数据传输能力,由于设备压装一次所需要的时间很短,为了保证采集之后的数据能迅速并实时地在ARM上绘制并判断,所以数据传输必须采用高速的传输协议。第三,I/O口的数量,由于该数据采集系统除了采集数据之外,它还得实现对PLC的控制,所以在除去其它包括存储芯片I/O,采集I/O,数据传输I/O等I/O口之外,必须还得留有多余的I/O口对PLC进去控制,所以I/O口数量要求比较多。


2.1 数据采集系统硬件设计

鉴于以上要求,我们选取C8051f060作为该数据采集系统的控制芯片。C8051f060是完全集成的混合信号片上系统型MCU,里面具有两个16位精度1Msps最高转换速度的AD转换器,转换数据直接存储到RAM中,不需额外软件开销,可同时使用的硬件SMBus,高速SPI及两个UART串行端口,具有 59 个数字 I/O 引脚。其中串口和SPI口都可直接和ARM连接无需其它驱动电路。传感器方面,该系统采用压力传感器C9B,位移传感器PY1,然后对其产生的电压信号进行滤波放大送到单片机的AD采集端。


2.2 数据采集系统软件设计

由于该数据采集系统是以8为单片机为控制控制芯片,它得同时处理数据采集转换、SPI数据传输、串口接收、PLC控制等多个任务。而且对于压装系统来说,由于机器压装一次速度很快,并且所采集的数据量也很大,所采集及传输必须具有很高的实时性。如果用传统的单片机编写程序模式,它的程序规模会很大,系统调试复杂,特别在这种需要运行多个并行任务的情况,就显得有些力不从心,更主要的是系统的稳定性和实时性很难得到保障。

基于S3C2440芯片和单片机设计压装数据采集系统的设计

所以本数据采集系统采用能实现多任务同时运行的UCOS-II实时操作系统。UCOS-II是有Micrium公司提供的一款可移植、可裁剪的小型多任务实时操作系统,它具有执行效率高、占用空间小、实时性优良和扩展性良好的特点。虽然体积小但它包含了任务调度、任务管理、时间管理、内存管理和任务间的通信和同步等功能。UCOS-II中最大可支持64个任务,分别对应优先级为0—63,高优先级任务可以抢占低优先级CPU资源。多任务操作系统是把CPU的执行分为多个很多个时间块,任务A执行完后它会把CPU的使用权交给任务B,而且高优先级的任务每执行会主动放弃一段CPU的使用时间,把使用权交给其它的任务,这样多个任务依次轮转运行,由于时间块很短,这些任务就好像是在同步并行运行了。


本数据采集系统如图3所示将其功能模块划分为四个任务:数据采集任务、数据发送任务、PLC通信任务、串口读写任务。

基于S3C2440芯片和单片机设计压装数据采集系统的设计

(1)数据采集任务:数据采集任务就是每次压装开始时,通过C8051f060单片机片内的AD转换器进行双通道的数据采集,采集的速度为5kHz。并同时将采集到的数据通过DMA方式保存到片外RAM中去。压装停止时,停止采集。

(2)数据发送任务:数据发送任务是将放在片外RAM中所采集的压力和位移数据,通过SPI协议传输给ARM处理器,ARM再对这些数据进行曲线图绘制和压装结果的判断等操作。在片外RAM没有采集数据时,该任务会处于休眠等待状态。

(3)PLC通信任务:该系统通过在C8051f060上设置了14个I/O口与PLC通信,7个输入和7个输出。该任务是一方面监测ARM传送过来的指令,然后对7个输出口进行操作,另一方面不断监测7个输入I/O口,观察PLC有没有发送指令给ARM。

(4)串口读写任务:串口读写任务简单来讲就是接收并读取来自ARM经过RS232发送过来的指令,然后发送PLC给ARM的一些信号。


其中最关键的核心任务是数据发送和数据采集这两个任务。因为只有等运行采集任务,在片外RAM中保存了数据之后,数据发送任务才能发送。所以在任务的调度上为了协调好两者的关系,于是在这两个任务之中加入了一个任务之间通信的信号量。开始时信号量为0表示RAM中没有采集的数据,即数据发送任务不能进行,当RAM中保存了一个数据之后,信号量置1,数据发送任务就可以运行了,当数据发送速度大于数据的采集速度时,即RAM中的数据为零时,这时候信号量又置0,使得数据发送任务等待数据采集任务。所以加入信号量之后就能保证任务之间能正常有秩序的运行。


3 、总结

UCOS-II是一款实用性很强的小型嵌入式实时操作系统,随着整个嵌入式行业的发展,它的应用也越来越广泛,优越性也愈加明显。在此压装监测设备上,笔者把它移植到了功能强大的C8051f060单片机上,通过多任务并行执行调度方式,实现了压装监测设备的一个核心单元,即实时数据采集系统。UCOS-II与C8051f060的结合,使得该数据采集系统能实时准确地采集到压力和位移数据,并快速的发送给上层处理单元,使得整个压装监测设备能正常稳定地运行,并取得预期效果。

推荐阅读

史海拾趣

ALTERA(阿尔特拉)公司的发展小趣事

阿尔特拉(Altera Corporation)是一家以可编程逻辑器件(FPGA)和相关技术为主的半导体公司,成立于1983年,总部位于美国加利福尼亚州的圣塔克拉拉。以下是关于阿尔特拉公司发展的五个相关故事:

  1. 创立与早期发展:阿尔特拉公司由Robert Hartmann和Michael Magranet等人于1983年创立,最初致力于设计和制造电可擦除可编程只读存储器(EEPROM)。1984年,公司推出了业界第一个商用FPGA产品,即EP300系列,标志着阿尔特拉在FPGA领域的开创性突破。随后,公司不断扩大产品线,加大研发投入,逐步成为FPGA领域的领军企业之一。

  2. FPGA技术创新:阿尔特拉公司在FPGA技术方面持续进行创新。1992年,公司推出了基于静态随机存储器(SRAM)的FPGA器件,使得FPGA在速度和灵活性方面有了显著提升。此后,阿尔特拉不断推出新的器件系列和工具软件,以满足客户对于性能和可编程性的不断提升的需求。

  3. 与竞争对手的竞争:在FPGA市场,阿尔特拉与Xilinx是两大主要竞争对手。两家公司之间展开了激烈的竞争,包括技术研发、产品性能、市场份额等方面。为了在市场上取得优势,阿尔特拉不断加大研发投入,推出了一系列领先的产品和解决方案,并通过全球销售网络拓展市场。

  4. 收购与合并:阿尔特拉公司在发展过程中进行了多次收购与合并,以扩大市场份额和提升技术实力。2015年,英特尔公司以约160亿美元的价格收购了阿尔特拉,将其并入英特尔旗下成为其子公司。这一收购使得英特尔得以整合阿尔特拉的FPGA技术和产品,进一步巩固了其在半导体行业的地位。

  5. 公司发展与创新:作为英特尔的子公司,阿尔特拉继续致力于技术创新和业务拓展。公司不仅持续改进现有产品的性能和功能,还积极投入到新兴领域的研发与应用,如数据中心、人工智能、物联网等。阿尔特拉通过不断推出创新产品和解决方案,保持了在半导体行业的领先地位。

以上是关于阿尔特拉公司发展的五个相关故事,这些故事展示了阿尔特拉从创立初期到被英特尔收购的发展历程,以及其在FPGA技术领域的技术创新、市场竞争和业务拓展等方面的重要进展。

C&D公司的发展小趣事

随着国内市场的逐渐饱和,C&D公司开始积极拓展海外市场。公司制定了国际化战略,通过参加国际展会、建立海外销售网络等方式,不断开拓国际市场。同时,C&D公司还针对不同地区的市场需求,推出定制化的产品和服务,进一步提升了其在国际市场中的竞争力。

Anpec(茂达)公司的发展小趣事

Anpec(茂达电子)自1997年创立之初,就肩负着提升国内电源模拟设计环境、建立自主模拟及电源相关产业的使命。初期,公司规模虽小,但志向远大。面对国内外市场的激烈竞争,茂达电子凭借对技术的执着追求和对市场的敏锐洞察,逐步在模拟集成电路设计领域站稳脚跟。

Cooper Industries公司的发展小趣事

为了进一步拓展全球业务,Cooper Industries在2007年收购了韩国防爆电力设备制造商Hyundai Explosion-Proof Electric Co.。这一收购使公司能够更好地进入韩国市场,并充分利用韩国在造船业以及国内能源与石化基础设施方面的优势。通过这次收购,Cooper Industries不仅提升了在韩国市场的竞争力,也为其在全球防爆电力设备市场的地位打下了坚实基础。这一举措再次展现了Cooper Industries在全球化战略中的远见卓识和果断行动。

这五个故事只是Cooper Industries发展历程中的一部分,但它们足以展现出公司在电子行业中的卓越地位和不断创新的精神。通过全球扩张、收购整合、技术创新和市场拓展等方式,Cooper Industries不断壮大自身实力,为行业的发展做出了积极贡献。

Ferranti Electric Inc公司的发展小趣事

Ferranti Electric Inc公司非常重视知识产权的保护和积累。通过不断的技术研发和创新,公司积累了大量的知识产权,包括商标、专利等。这些知识产权的拥有不仅彰显了公司的技术实力和创新能力,也为公司的市场竞争提供了有力的保障。公司不断加大在研发和创新方面的投入,以保持其在电气行业的领先地位。

ETC1公司的发展小趣事

成谷科技是一家专注于ETC技术在区域市场应用的企业。公司根据不同地区的交通特点和需求,量身定制ETC解决方案,并在当地市场进行深耕细作。通过深入了解当地市场和客户需求,成谷科技成功打造了一系列具有地方特色的ETC应用案例,赢得了当地政府和客户的广泛赞誉。

问答坊 | AI 解惑

嵌入式linux平台上有类似CETK的测试工具吗?

有两个问题: 1 做WIFI驱动要进行大量的测试,微软提供了CETK测试工具很方便,但Linux平台上没有找到合适的测试工具,不知大家在linux上都用什么工具测试WIFI驱动呢? 2 在linux平台上有没有比较好用的开源自动化测试框架? …

查看全部问答>

xpe的问题,请教在xpe下将程序做成服务的方法

最近做了个小程序,在XP下做成系统服务后可以接受远端客户程序的连接。 但是在自己定制的XPE下做成系统服务不能接受连接,做成一个一般的应用程序(带个简单的窗口)就可以接受连接。 我在XPE下打开控制面板里的管理工具,里面什么都没有。 想请 ...…

查看全部问答>

大家应该都碰到过这种情况,该怎么解决?????

PB在一次非法关机之后就无法打开我的工程了,一打开工程就弹出C++ RUNTIME LIBRARY 的错误 RUNTIME ERROR!!! …

查看全部问答>

关于在ARM9上移植H.264编码的问题

最近在做一个项目------基于ARM9的视频编解码,准备采用H.264标准,现在有点疑惑就是,移植的代码以什么形式嵌在系统里,是做个应用程序,还是在驱动里添加模块?? 请教高手~ …

查看全部问答>

如何修理CRT显示器有扫描线问题

我有一台LG的CRT显示器,2002年买的,17纯平,到现在有了问题,总是有水平倾斜的淡灰色扫描线,宽度大约有4厘米 背景基本上是纯白色,很隐约地能看到桌面上的图像。 2006年的时候,就会有这样的情况出现:当天气潮湿,桌面就会很模糊,开机停几十 ...…

查看全部问答>

学习httpdisk源码中的疑问,向大侠请教

我在学习httpdisk源码中,把网络接收的数据先放到申请的内存中,然后通过RTlcopymemory到用户数据的内存中, 1、请问难道不能直接访问用户数据内存吗? 2、我想把它改成可以写的。当发送数据时,是不是一定要先RTlcopymemory用户数据到临时内存中 ...…

查看全部问答>

怎样调试?急救!

我自己做了一块6711的板子,现在cpu和SDRAM都焊好了。JTAG仿真也能进入CCS。现在我想自己做个亮灯的程序放到SDRAM中运行。我该怎么做?需要修该头文件吗?请教高手,最好能一步步说的详细些,我是新手。…

查看全部问答>

用430内部DCO调出来的频率与外接晶振相比有什么优点?

用430内部DCO调出来的频率与外接晶振相比有什么优点?…

查看全部问答>

问什么我的仿真端口输出电压老是为零?

 给位大侠!我第一次用proteus 仿真。编译生成hex文件---加到msp430--但仿真输出端口电压为0!!郁闷死了!你们看看我的电路图是不是数字电源dvcc没有?谢谢!发图如下   [ 本帖最后由 stoney123 于 2011-5-19 08:34 编辑 ]…

查看全部问答>

C51常用模块程序

本帖最后由 paulhyde 于 2014-9-15 08:59 编辑  …

查看全部问答>