多线程编程中有一个很重要的环节:各个线程之间的通讯与控制问题
在多线塑封电感器程编程中,每个线程都用编码提供线程的行为,用数据供给编码操作。多个线程同时处理同一编码和数据,不同线程可能各有不同的编码和数据。事实上,编码和数据部分是相当独立的,需要时即可向线程提供。因此经常是几个线程使用同一段编码和数据这就会出现下面的情况
当一个线程在调用数据时,另一个线程可能正在修改这些数据。则前一个线程所调用的数据出现了不确定性。这会影响整个运行结果。为了避免这个问题,多线程编程中,各个线程之间通讯和控制尤为重要。在将多线程的思想向单片机控制系统移植时,这点要非常注意。因为系统多线程运作的实现从其最基本的层面看仍然是单线程的操作;他的实现归根结底是利用了计算机的高速度。它将系统运行的基准时间分成了许多时间片,将各个时间片分给不同的线程,如此一来在一个基准时间内各个线程全都向前行进了一步,然后运行下一个基准时间,周而复始。这样在用户层的角度看来,各个线程是同步进行的。只要速度够块,时间片的划分不会影响用户层面上的应用,这样就可以实现多线程的操作。近年来单片机速度的大幅度提升,这就使多线程差模电感思想向单片机控制系统的移植成为可能。
在整个项目中全部的输入信号共39个;同时并行查询的对象最多时有61个系统要求以步进电机最快的速度打拍。时间约40us---60us,为了保证步进电机打拍的稳定性和灵活性。我选用了DS电感器生产P内部的一个定时器,定时时间为打拍时间的1/3—1/5。设定为10us中断。这个时间为整个系统运行的基准时间。在这段时间内,系统要查询一遍所有对象并向相应的步进电机打拍。在一些线程中还需要采样多次。换句话说,在这个系统时间内。所有线程都要向前行进一步。
就像计算机一样,将这个基准时间分为多个时间片。将各个时间片分给不同的线程,在这种情况下,各个线程的执行是间断的。这与用硬件模拟多线程有本质的不同。像这样既要应用各线程执行的间断性,又要保证各线程运行的连续性。这对软件的贴片电感设计有了很高的要求,这同时也是单片机控制系统用软件模拟多线程方法中的难点之一,为了解决这个问题,可在个线程自带线程进度指示器用来标志线程的运行进度,即用一个变量记载线程的每一步;如图2
图2
系统设定线程进度指示器用来指引线程的连续运行,同时在一个中断中轮询所有对象。其编程结构大致如下:
时钟中断:
线程1:
线程进度标志:
1: ;
2: ;
3 ;
线程2:
线程进度电感符号标志:
1: ;
2: ;
。。。。。。。。
用软件模拟多线程还有很多要注意的地方。
如果选用20兆的DSP来实现控制功能,步进电机最快的打拍速度为40us---60us,则有下面的计算结果,,取1/4,即10us产生一中断,在中断里查询61个对象。20兆DSP单条指令的执行时间大约为50ns在一次中断内可执行的语句数=10us/50ns=200条,如果在分给61个对象,每个对象所分得的指令数仅为3条,已经不够用了,即使选择60兆的DSP,说分指令也只是9条,若以牺牲打拍的灵活性为代价,以60us为已中断。则每个对象所分得的指令数仅为36条勉强够用,如果所控制的对象再多的话,软件编程的灵活性将进一步被压缩,
下面提出了一种扩展的多线程模拟方法,如图3
图3
s1,s2为系统运行的基准时间,M1.1 为第一对象组中第一对象。M1.2 为第一对象组中第二对象。
这种扩展的多线程模拟方法仍将系统时间化成多个时间片,与上面不同的是有几个线程(对象)组成一个线程组,共享同一个时间片,例如:当系统运行到第一次基准时间的第一个时间片时,由共享时间片的第一个线程占用,当系统运行到第2次基准时间的第1个时间片时,由共享时间片的第2个线程占用,如此类推,这种扩展模式可以灵活的掌控线程与所用时间的比例,但是这是以牺牲运行时间为代价的。1
七、电磁屏蔽材料的选用 具有较高导电、导磁特性的材料可以用作屏蔽电感材料。常用的有钢板、铝板、铝箔、铜板、铜箔等。也可以在塑料机箱上喷涂镍漆或铜漆的方法实现屏蔽。屏蔽机箱的屏蔽效能除了与所选屏蔽材料 插件电感器工厂 相信大家对开关电源变压器并不陌生,开关电源变压器在各种电子装备中都常被用到,它作为一种主要的软磁一体成型电感厂家电磁元件,在电源技术中和电力电子技术中得到广泛的应用,开关电功率电感器 改变仿真电路中的串联电感,可得到放电电流波形数据如表4所示。由表4中可以看出当引线电感,J达l000uH时,检测回路放电电流峰值可达到千安级。当L=200H时,回路电流波形如图9N示,可
上一篇: 汽车轮胎压力实时监视系统传感器介绍
下一篇:功率电感器
2/3 首页 上一页 1 2 3 下一页 尾页 |