佳能镜头EOS系统EF协议逆向工程(一)
索引
- 前言
- 佳能EOS-EF系统
- EF连接器的物理构成
- 线路引脚
- 引脚作用
- VBat2 = 4.75v (+/-0.25v)
- Vdd2 = 5v
- P-Gnd, D-Gnd
- Det
- DCL, DLC, LCLK
- 简化的运行时间表
- EF外壳/光纤链路简化原理图
- 通用EF协议
- LCLK时钟信号
- EF帧示例
- EF协议分析
- 测试使用的物理硬件
- 电源
- SPI接口
- 测试架构原理图
- 连接实现图
- 外壳适配器(转接环)
前言
本文属于专栏——工业相机。此专栏首先提供我人工翻译的法语文档部分,然后通过STM32F103C8T6控制佳能镜头,最后协同上位机或者NVIDIA Xavier实现自动对焦。还有一个用处不大的River文档,它知道如何让相机和镜头通信,也许对当前的摄影实践几乎没有帮助。
尽管如此,一些应用程序可能需要独立订购物镜的主要功能。撇开工业世界及其特殊机器不谈,在另一个品牌的图像采集系统上安装佳能光学元件是不可能的,而且是有罪的,无论是出于经济原因还是纯粹的技术原因,获得的组合提供了其他不可用的功能。例如,可以在混合动力车身或视频DOS上安装一个超级远距镜头,或者重新使用旧的XL视频恢复光盘。如果所有物镜都有一个外部焦点控制,光圈控制仍然是计算机控制的,因此需要知道要发送的命令和驱动它的EF协议。
请注意,本文件是通过分析电气通讯和信号而编写的,没有原始的制造商来源。这种逆向工程方法在欧洲是允许的,在某些国家是非法的,读者应当事先确认。用户自行对本文中的评论负全部责任。它们的适用范围仅限于编写本文件时需要使用的材料,作者不保证与其他或更新的外壳和物镜兼容。同样明显的是,由于所采用的方法以及测试的物镜和容器数量较少,本文所载信息可能只是部分和不完整的。
佳能EOS-EF系统
EOS(电子光学系统)于1987年问世,消除了当时使用的机械连杆控制所带来的所有限制,并为实现精确可靠的自动对焦控制开辟了可能性。
为了实现这一点,光圈位置和焦距镜头位移控制由电动机辅助,电动机由电子装置控制,并在镜筒和物镜之间建立双向计算机连接。
这种电子连杆需要设计一种新型的瞄准装置,这种瞄准装置不再由机械控制,而是由电气连杆组成:EF支架及其后来的EF-S、EF-M和XL系列相机。
EF连接器的物理构成
该电气连杆由两个螺纹接头组成,其安装在支架支撑平面上。安装侧接头的触点是固定的,壳体上的触点由弹簧安装的活塞组成,以补偿轴向安装间隙。只有在完全定位两个外壳和物镜接头时,才能激活接头触点上来自外壳的不同电源电压和对话框信号。
EF连接器可分为多个功能块。前三个触点提供电源电压,并通过Boiter提供光学安装检测,后五个触点从Boiter/光学串行链路提供CPU电压和数据信号。
某些光学元件上的第三个三触点块用于编码和检测光学补偿器(遥控器或Life Size Converter)的安装。
线路引脚
- 物镜电源电压(电机)(VDD)VBat2 = 4.75v (+/-0.25v)
- 检测镜头是否存在(DET)
- 功率接地(P-GND)
- 物镜5V逻辑电源(VCC) Vdd2 = 5v
- 上位机->镜头(DCL)
- 镜头->上位机(DLC)
- 时钟(SCK)
- 数字接地(GND)
- 通用遥控器编码(COM I)
- 遥控器(1.4X和LifeSizeConverter)编码位1
- 遥控器(1.4X-2X)编码位2
引脚作用
VBat2 = 4.75v (+/-0.25v)
由外壳的DC-DC板产生的光学电源电压,为动力装置(AF、USM、隔膜、稳定等)供电。仅在需要时由物镜提供。请注意,在旧的电瓶上,电压是由电池直接传递的,因此电压约为6V。由于物镜中使用的某些集成电路的电压不能超过7V,因此发送原始锂离子电池电压(8V4max)可能会导致物镜损坏。
Vdd2 = 5v
光学计算机系统的电源电压。通过将外壳的DET端子接地进行检测,在设置物镜时激活,为此,物镜连接器将其DET和P-GND端子连接起来。在遥控器的情况下,在设置VDD2切割镜头时启用一个开关,以避免该电压激活接头可见。请注意,该电压始终存在,包括车厢开关ON OFF,因此只能对已拆下的蓄电池进行触点干预。
P-Gnd, D-Gnd
设备的质量,在相同的电气等级,但由于EMC原因,在镜筒上使用不同的内部接线,P-GND来自DCDC板,D-GND来自CPU板。
Det
具有5V牵引电阻的输入,并在安装光学元件时接地,激活VDD2输出。
DCL, DLC, LCLK
计算机信号0-5V(逻辑电平高A+5V,其余为高状态)。这些信号的输出阻抗约为10KΩ,当然使用RTL逻辑,低于33KHO的外部负载可能会阻止它们正常工作。始终处于活动状态的外壳处于非待机状态,定期轮询以控制光学元件的状态。由于相机或镜头在低电平下激活LCLK时钟信号,因此禁止使用TTL逻辑来控制镜头。
简化的运行时间表
Introduction Objectif:接入物镜
Initialisation:初始化
Polling:轮询
Prise de vue:拍摄
Retrait Obj.:移除物镜
EF外壳/光纤链路简化原理图
通用EF协议
所有镜头控制(光圈设置、AF启动、IS…)以及反馈(光学特性、验证等)以串行形式在外壳及其光学元件之间传输。
使用的传输格式基于经典的摩托罗拉SPI模式3(静止状态1信号,时钟量前端数据验证),8位,MSB优先,旧一代光学系统的载波约为80kHz,新一代光学系统的载波约为500kHz。
在第8位之后,接收器通过将时钟设置为低状态(约15µs)来执行传输无损拆卸或镜头占用信息。
传输协议随着时间的推移而演变,并存在于许多版本中,理论上确保了自上而下的兼容性。这种兼容性并不是绝对完美的,因此,与某些西格玛光学元件的问题可能是由于出现了产生错误01的数字外壳(网上有一个基于Attiny24的硬件补丁)。在光学元件和外壳之间的初始交换过程中,此版本信息将与光学元件的特性和可能性进行通信。
由于光学元件允许通过EF端口更新固件,Canon很可能在现有协议中增加了一种高速对话框模式,允许发送大量数据块。
LCLK时钟信号
Cycle transmission cctet:循环传输
Octet+1:下一个字节
EF帧示例
EF协议分析
测试使用的物理硬件
处理镜筒或物镜时的主要风险是造成短路和破坏其中一个。因此,最好使用标准的非DIY EF连接器,要么修改一个低成本的延长环,要么像这里一样使用旧的回收银罐的尸体。
在这个例子中,一块大的实验电路板被固定在这个相机的薄膜平面上,这个相机的所有内部部件都被剥离了,为部件留下了足够的空间。
电源
物镜由5V电源供电,包括物镜的电源部分(额定4.75V)、保险丝和二极管交叉保护,以防过载和极性反转。如果物镜的处理器VDD2电压保持恒定,则VBAT2电机的电源电压将通过MOSFET P OA4407由处于高状态的外部信号在VBAT2中进行调试。两个信号LED允许查看物镜上是否存在这些电压。镜头0V回路中的并联电阻允许最终测量和控制镜头所消耗的强度(IXBT.com上的想法被盗)。
这里的电源是一个经典的USB 2A扇区块,并联的螺纹接线板允许为用于测试的EOS500电池供电,以取代CR2电池。
两个白色5830 CMS LED,焊接在印刷电路板的铜侧,并通过跳线进行调试,最终允许从透镜内部照明。
SPI接口
为了便于事件分析,SPI接口的三个信号通过彩色LED显示。为避免干扰,这些LED由74244型缓冲器控制,当SPI信号处于低电平状态时,其AU+公共接线模式将导致逻辑反转。当由非开路集电极型逻辑系统控制时,物镜时钟由限位电阻保护。
显然,这些选项是在测试上下文中提供的,在实际使用中通常不需要。仅需保留控制系统对VBATT2电源电压的验证,以保护物镜电机。
测试架构原理图
连接实现图
外壳适配器(转接环)
同样,一个用于从一个箱子中检索信号的适配器是使用一个带有连接器(300/2.8检索)的旧框架和另一个残骸(17-85)的底座来实现的。
端部带有HE14接头的连接线直接连接到前一个镜头适配器上的螺钉上。线路的颜色如下表所示:
下一篇文章将详细讲解重要指令的逻辑分析仪测试结果。明天(11月1日)更新。
佳能镜头EOS系统EF协议逆向工程(一)相关推荐
- 服务器win7internet协议议,主编细说win7系统internet协议在哪、添加TCPIP协议的操作方法...
想必大家都遇到过win7系统internet协议在哪.添加TCPIP协议的问题吧,大多数朋友还不知道怎么处理因此我就在电脑上汇集整顿出win7系统internet协议在哪.添加TCPIP协议的少许解决 ...
- ADAS自动驾驶辅助系统通讯协议「ADASIS Protocol」接口定义解析(二)详细
「ADASIS Protocol Introduction」 --信号接口解析 本文来自微信公众号:[阿波兹得][续]ADASIS Protocol介绍 (2) 信号解析https://mp.weix ...
- 【eos系列】eos系统合约介绍 — 发币合约eosio.token
简介 本章将深入源码,为大家分析eos的系统合约eosio.token的实现细节.eosio.token是eos的发币合约,这个合约主要实现了EOS代币的创建.发行.转账等功能. 主要合约方法 eos ...
- OICQ服务器系统通讯协议 1
网摘. OICQ服务器系统通讯协议 协议说明: 协议由报文头(T)+发送者(T)+接收者(T)+报文类型(T)+报文长度(L)+报文内容组成 发送者和接收者是系统内 ...
- 移动端IM系统的协议选型:UDP还是TCP?
1.前言 对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码该如何编写. 从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论 ...
- 在直播平台搭建平台中,购物源码开发公司的直播间搭建该如何选择流媒体直播系统传输协议
2019年直播行业面临着来势汹汹的短视频挑战,但在垂直细分领域,网络直播平台依旧有着难以企及的位置.如今,直播平台搭建的势头依旧没有减弱,只是更多的人想要将直播平台与更多的行业相结合.对于直播平台搭建 ...
- X窗口系统的协议和架构
转自X窗口系统的协议和架构 在电脑中,X窗口系统(常称作 X11.X)是一种以位图显示的网络透明化窗口系统.本条目详述 X11 的协议及其技术架构. X C/S模型和网络透明性 X 基于C/S模型.运 ...
- CRMEB系统使用协议
CrmEb软件使用协议版权所有 (c)2014-2024,西安众邦网络科技有限公司 保留所有权利. 感谢您选择CrmEb开源客户管理+电商系统(简称CrmEb),CrmEb是国内最稳定.最强大.最先进 ...
- DNS(域名解析系统)协议
DNS 协议是一个应用层协议,它建立在 UDP 或 TCP 协议之上,默认使用 53 号端口.该协议的功能就是将人类可读的域名 (如,www.qq.com) 转换为机器可读的 IP 地址 (如,119 ...
最新文章
- 用python的turtle画圆-(python海龟绘图怎么增加每次画圆的半径)
- 视窗宽高offset、client、scroll
- C语言程序设计 | 操作符介绍与使用方法
- java seteditable,Java TextField.setEditable方法代碼示例
- Redis工作笔记-Hash类型
- 【ASP.NET】网页中嵌入视频
- 在浏览器设置里能看到cookie, 页面调试Application里看不到
- cmd设置mysql初始密码_windows下mysql初始密码设置
- 【转】Android 避免APP启动闪黑屏(Theme和Style)
- Zookeeper C API 具体应用实例
- html浮动div同行显示,div已经设了over-flow:auto;为什么没有滚动条浮动元素不能同行显示了,怎么办...
- CocoaPods 2017最新、最快安装和使用说明
- boost库BOOST_FOREACH使用说明
- CentOS配置静态IP
- stm32 PWM波
- 嵌入式Linux下获取CPU温度方法
- DNS基础:域名解析、多重域名解析、特殊域名解析、主从同步设置
- windows下延时函数
- 沉痛悼念恩师莫绍揆先生
- 《指数基金投资指南》读书笔记---行业指数基金