前些日子在21IC申请了块LM3S811,看到我名字通过审核了,想来也该写篇帖子。当时打算是是开发ARINC 407自整角信号收发设备的,现在出差在外,暂时也干不了了,但想想还是可以的嘛。本来打算用FPGA做的,但要AD,DA,TI有款音频解码芯片,8输入6输出,还同步,又便宜,但用的人太少,坛子中提问也没人回应,这个方案感觉挺费钱,不划算,ARM没有接触过,但大概看了下LM3S811说明,正好物尽其用。
ARINC 407自整角信号是三根线XYZ传输角度信息C,H传送参考电压,角度变化在10Hz以下,w=400Hz,X=1.414*12*SIN(C)*sinwt,Y=1.414*12*SIN(C+120°)*sinwt,Z=1.414*12*SIN(C-120°)*sinwt,H=1.414*26*sinwt,函数关系不算复杂。接收时已知X,Y,Z,H,求C,发送时已知H,C,求X,Y,Z。
接收时信号需要先经过求有效值电路处理,将X,Y,Z有效值转换出来,要不然直接采样很难同步,处理还麻烦。得到X1=ASIN(C),Y1=ASIN(C+120°),Z1=ASIN(C-120°),再计算就容易了。太小的电压误差大,取两个大的电压就可以求反三角函数得C(公式记不得了,又懒得推导,回去查资料),正好LM3S811有AD接口,4个用3个可以求解一路。
发送时利用LM3S811的PWM,滤波之后相当于DA,得到X1,Y1,Z1,需要模拟乘法器,与H相乘,便得到XYZ。,6个PWM全用上,可以发送2路407信号。
与计算机通信正好用得上UART,2个用1个就可以了,反正速度不快,至于232转USB还是NET,淘宝上都有现成的板子,也不贵。GPIO正好和键盘、液晶屏交联,要是那种支持232的高级显示屏,正好剩下的1个UART用上。
如果要接收2路,可以用模拟开关切换,反正每秒采样个几十次都足够去掉最高分,去掉最低分,取平均值了,只是要增加电路。要是精度到了90/1024=0.1°以下,或角度变化太快,这个方案就不行了,要采用锁相环跟踪接收等,但目前还是实用的。
交流电有效值求解用ADXXX的芯片,模拟开关用CDXXXX,模拟乘法器用MTXXXX,中间还要运放OPXXXX,记不得名字了,6跟收,6根发,加起来还不便宜。其实这些晶体管就可以实现,以前看到过,精度不比芯片差。交流有效值貌似主要就是二极管加电容,模拟开关就是场效应管,乘法器就是三极管,记不得了,谁有发个链接。
简单的东西用LM3S811就足够了,C语言写得快,画、焊板子容易,还便宜。 |