3GO模拟飞行网|3GO Cyber Air Force

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5397|回复: 2

请教各位前辈,何为MJ16电路板?

[复制链接]
发表于 2010-1-11 14:27:52 | 显示全部楼层 |阅读模式
看各位高人有的自制控制面板,用所谓MJ16电路板。请教一下这个电路板具体的内容。它是直接由厂商生产自己编程的电路模块吗?
发表于 2010-1-11 15:21:54 | 显示全部楼层
  名字来源于一片ATMEL公司AVR系列的单片机。型号为ATmega16或(ATmega16L)。

  用这个单片机的IO口做开关检测,AD转换器做轴检测。可以模拟出一个通用USB摇杆外设。用户所做的就是把自己的开关或电位器按照板子的使用说明连接到对应的插针上。由于被电脑识别为通用摇杆,因此不需要安装任何驱动,使用Windows自带的驱动即可。兼容性非常好。


一些背景知识:
  这个单片机本身是一个通用器件,原本设计用来做除了USB通讯以外的各种工作。硬件不支持USB协议,因为自己不包含USB的串行接口引擎(SIE)。但国外高手用它的通用输入/输出端口(GPIO)通过软件模拟出了符合USB低速传输规范的时序,并把源代码开源。

  有AVR应用经验的工程师拿到他的源代码,可以直接借用底层的USB协议函数完成各种USB通讯。自己所要做的只是修改上层的功能代码。再具体一些,就是:
1. 修改USB插入后的枚举(enumeration)过程,让电脑把它识别为人机接口类(HID class)设备中的摇杆子类(sub class)。
2. 按照USB规范定义自己的数据报文,告诉系统这个摇杆上有几个按钮,几个轴,几个苦力帽。Widnows的默认USB驱动与DirectX中的相关组件默认支持8个轴(最高分辨率为1/65536)、32个按钮、1个苦力帽(最高分辨率为1度角)。接着修改功能代码中的数据传输
3. 编写自己的代码用来检测这些轴与按钮,并不断根据最新的状态生成新的报文发给电脑。
 楼主| 发表于 2010-1-11 15:55:02 | 显示全部楼层
感谢高人指点迷津
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|3GO模拟飞行网|3GO Cyber Air Force ( 沪ICP备08002287号|沪ICP备14050587号 )

GMT+8, 2024-11-16 16:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表