bjash 发表于 2011-3-9 19:42:47

ipod IDPS认证

我按以下步骤开始IPOD IDPS:
1. 检测到Acc power 3.3V后,等待80ms
2.写同步字节0xFF ( bps=19200)
3.等待20ms
4.发送0xFF 0x55 0x04 0x00 0x38 0x00 0x00 0xC4

从串口调试助手中读到iphone TX 出来的是0xFF 0xFF 0x55 0x04 0x00 0x38 0x00 0x00 0xC4

奇怪怎么返回的字节就是我发送的字节.
我在想是不是以下原因:
1.Trabsaction ID 不对, 虽然开始是从0x000开始
2.实际等待时间不是80ms或20ms
3.checksum不对

有没有别的地方没想到,有哪位指示一下为谢!

bjash 发表于 2011-3-9 19:46:20

以上补充一点:4.可能与coprocessor2.0芯片有关, 我的板上是有的.但以上问题之闪没有对此芯片进行任何读写操作

bjash 发表于 2011-3-10 19:47:02

找到问题点,是checksum算错了.只发送了一个startIDPS , ipod 回应成功0x00.我想一步一步做IDPS和AUTH.

bjash 发表于 2011-3-15 19:08:13

现在已可完成IDPS,并返回0x00成功状态,并且IPOD已发出了0X14 要求授权, 只是发了三次(每次15s) 后我没有给出响应,它就发出了0x19,显示没有授权. 以下接着做Auth.但在IDPS 部份只是基本实现.

liaojinwei88 发表于 2011-3-22 22:23:22

你也玩这个,有时间我们交流一下。 我也做了一个产品,IPOD&IPHONE douck 产品。目前已通过apple认证

icengineer 发表于 2011-3-22 23:13:14

IPOD认证,板子有画,但一直没弄软件,膜拜下!

bjash 发表于 2011-4-1 19:55:45

4楼软件是你写吗?

forlan 发表于 2011-4-4 20:41:53

可以的话我也想弄弄!!!

zerolee 发表于 2011-4-11 22:49:25

楼上诸位,我也刚开始做MFi的东东。。能否交请教一下。谢谢。我们公司已经加入MFi组织了。

我的QQ是:26803385

bjash 发表于 2011-4-17 21:15:17

在IDPS 成功后, 现在可以读出CP证书, 并将它传给IPOD, 并且ipod回应0x16 , ACK=0. 并给出口令. 现在已将口令传给了CP,并得到了数字签名.传给IPOD后. 过1分钟左右,并没回0x19.而是回0x14 再要求授权.

dhdahai 发表于 2011-4-20 14:22:55

bjash你好!
有没有联系方式啊?
关于IDPS的问题请教下,谢谢。
我QQ:124150901

mingyuexin1981 发表于 2011-4-20 14:43:15

楼上,有什么问题讲出来吧,大家一起讨论。我刚刚做完了苹果的idps认证,有一些经验教训可以互相借鉴啊

dhdahai 发表于 2011-4-20 16:59:51

回复【11楼】mingyuexin1981
-----------------------------------------------------------------------

我现在
1、发送startIDPS   
2、收到ACK status 0x00
3、发送SetFIDTokenValues
4、收到RetFIDTokenValueAcks 不过IdentifyToken的status为0x01
不知是什么问题?

另:没有授权IC,IDPS可以成功么?

liaojinwei88 发表于 2011-4-20 23:12:38

没有IC idps同样可以成功的。但就是不能完成认证的所有步骤。我的软件是自已写的,一个产品开发了半年。终于成功。

dhdahai 发表于 2011-4-21 10:19:50

又有问题:

ipod 返回IDPSStatus的status为0x02:

one or more required token-value fields were missing.IDPS failed

我设置了三个token:
IdentifyToken
SetAccCapsToken
AccInfoToken

pitolan 发表于 2011-4-21 10:30:01

MARK

liaojinwei88 发表于 2011-4-21 12:53:45

IPOD是哪個機型 ,ipod 3TH才會支持IDPS ,一般IPOD流程是先發送 FF 55 04 00 38 00 00 checksum   如果回就 為04 的話說明不支持IDPS 这种情况下就要用indentifydevicelingoes 的方式去完成所有流程。

shu577 发表于 2011-4-21 14:03:38

一直在学习ipod idps认证
三问题
1:什么是TransactionID,
2:为什么要先发送同步字节0xFF
3:10pin 和20pin 是怎么用的啊,是不是ipod检测到10pin 20pin为低附件开始发送 startidps

dhdahai 发表于 2011-4-21 15:47:03

回复【17楼】liaojinwei88
-----------------------------------------------------------------------

我的是5G nano,支持IDPS的

还有个问题:IDPS可以禁止authentication过程么?
identify token中应该是有控制位的,
不过我试过,不行,identify token无法识别

dhdahai 发表于 2011-4-21 15:51:28

回复【18楼】shu577
-----------------------------------------------------------------------

1:什么是TransactionID,
相当于每个命令的序列号
2:为什么要先发送同步字节0xFF
好像用于唤醒ipod和波特率同步
3:10pin 和20pin 是怎么用的啊,是不是ipod检测到10pin 20pin为低附件开始发送 startidps
10pin是识别脚,20pin是检测脚,手册上说是检测到pin13为高开始发送命令

liaojinwei88 发表于 2011-4-21 21:48:50

1。TransactionID 是IPOD或者IPHONE使用指令的流水号,
2。0xff 是IPOD&IPHONE为了校验你发送指令使用的波特率及同步。
3。10脚接一个电阻,根据手册你不一样的外围设备使用不一样的电阻,仔细看手册。20脚可跟30PIN相连,或者接地。
4 PIN13是IPOD&IPHONE向外供电一个脚,电压为3。3V。当IPOD通过检测10脚有一个电阻,然后PIN13才开始输出电压。

liaojinwei88 发表于 2011-4-21 21:51:25

bjash   
应该完成所有流程了。 他最后一步证书校验步骤完成就算完成了。

dhdahai 发表于 2011-4-22 12:10:23

IdentifyToken的 bit 1:0 为授权控制位,不过只有 10 --> 识别后马上授权

没有其他选项,郁闷了!

怎样跳过authentication?

只操作无需授权的指令?

liaojinwei88 发表于 2011-4-22 18:56:04

回复【23楼】dhdahai
-----------------------------------------------------------------------

在你進行IDPS動作時候,就設定為識別不作證書校驗處理。但是在這種情況下,有很多指令是不支持使用的。

並不是說跳過授權就能夠使用所有指令。

不知你要做哪方面的東西,如果單獨只是為了消除彈出不支持圖標 ,不需要軟件照樣能夠處理掉。

dhdahai 发表于 2011-4-23 08:48:08

回复【24楼】liaojinwei88
-----------------------------------------------------------------------

=====>不知你要做哪方面的東西

我现在只做音频那一块的应用,无需授权的指令应该是够用了。

=====>在你進行IDPS動作時候,就設定為識別不作證書校驗處理

现在的问题是在IDPS过程中,设置了不做证书校验

即将IdentifyToken的DeviceOptions-->0x00000000,DeviveID--->0x00000000

但是无法完成IDPS(0x3A命令返回0x01,提示IdentifyToken识别失败)

不知是不支持这样操作,还是我的设置问题?

liaojinwei88 发表于 2011-4-23 11:54:24

肯定是你設定的問題,把你發送的,setfidtokenvalue發送的碼,貼上來我幫你看一下。
            send_char_com(0xff);       //setfidtokenvalue one
            send_char_com(0x55);
       checksum=0;
            send_char_com(0x75);    //receive number
       send_char_com(0x00);//
       send_char_com(0x39);// SetFIDtoken command

       send_char_com(transactionid2);//transaction ID
       send_char_com(transactionid3);
       transactionid3++;
       send_char_com(0x09);      // send item        number

       send_char_com(0x0e);   //length   item0
       send_char_com(0x00);        //infobyteone
       send_char_com(0x00);   //infobytetwo

       send_char_com(0x03);        //numlingoes                  0xa4
       send_char_com(0x00);//general lingo
       send_char_com(0x02);        //simple lingo
       send_char_com(0x03);// display lingo
//       send_char_com(0x04);        //extended interface lingo

       send_char_com(0x00);//device option
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x06);

       send_char_com(0x00);// device ID
       send_char_com(0x00);
            send_char_com(0x02);
       send_char_com(0x00);

       send_char_com(0x0a);   //length item1
       send_char_com(0x00);        //infobyteone
       send_char_com(0x01);   //infobytetwo   0x22

       send_char_com(0x00);   //accCapsbitmask       
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x01);

       send_char_com(0x1b);   //length item2
       send_char_com(0x00);        //infobyteone
       send_char_com(0x02);   //infobytetwo    0x26

       send_char_com(0x01);   //name "speaker"       

                                                //Speaker for IPOD&IPHONE
       send_char_com(0x53); //S
       send_char_com(0x70); //p
       send_char_com(0x65); //e
       send_char_com(0x61); //a
       send_char_com(0x6b); //k
       send_char_com(0x65); //e
       send_char_com(0x72); //r
       send_char_com(0x20); //space
       send_char_com(0x66); //f
       send_char_com(0x6f); //0
       send_char_com(0x72); //r
       send_char_com(0x20); //space
       send_char_com(0x49); //I
       send_char_com(0x50); //P
       send_char_com(0x4f); //O
       send_char_com(0x44); //D
       send_char_com(0x26); //&
       send_char_com(0x49); //I
       send_char_com(0x50); //P
       send_char_com(0x48); //H
       send_char_com(0x4f); //O
       send_char_com(0x4e); //N
       send_char_com(0x45); //E
       send_char_com(0x00); //nul

       send_char_com(0x06);   //length item2
       send_char_com(0x00);        //infobyteone
       send_char_com(0x02);   //infobytetwo

       send_char_com(0x04);   //firmware version       
       send_char_com(0x01);
       send_char_com(0x00);
       send_char_com(0x00);

       send_char_com(0x06);   //length item2
       send_char_com(0x00);        //infobyteone
       send_char_com(0x02);   //infobytetwo

       send_char_com(0x05);   //hardware version       
       send_char_com(0x01);
       send_char_com(0x00);                     //1c
       send_char_com(0x00);

       send_char_com(0x0b);   //length item2
       send_char_com(0x00);        //infobyteone
       send_char_com(0x02);   //infobytetwo

       send_char_com(0x07);   //model number       
                                                        //
       send_char_com(0x53);   
       send_char_com(0x50);
       send_char_com(0x2d);
       send_char_com(0x42);
       send_char_com(0x42);
       send_char_com(0x31);
       send_char_com(0x31);          
       send_char_com(0x00);                      // 117

       send_char_com(0x07);               //addRF certifications

       send_char_com(0x00);        //infobyteone
       send_char_com(0x02);   //infobytetwo

       send_char_com(0x0c);   // RF certifications
       
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x00);
       send_char_com(0x03);    //iphone 3g &iphone 3gs & iphone & iphone 4g & ipad RF certification

       
       send_char_com(0x05);   //length item2
       send_char_com(0x00);        //infobyteone
       send_char_com(0x03);   //infobytetwo

       send_char_com(0x03);   
       send_char_com(0x01);   
       send_char_com(0x01);

   checksum=~checksum+1;
       send_char_com(checksum);

liaojinwei88 发表于 2011-4-23 11:55:15

按照我上面發送的指令作一下修改應該就能夠成功。

dhdahai 发表于 2011-4-23 12:14:35

回复【27楼】liaojinwei88
-----------------------------------------------------------------------
多谢回复!
send_char_com(0x00);//device option
send_char_com(0x00);
send_char_com(0x00);   
send_char_com(0x06);

send_char_com(0x00);// device ID
send_char_com(0x00);
send_char_com(0x02);
send_char_com(0x00);

你的这两项设置,是要求验证的。我这样设的话也可以idps成功。
不过我不想验证,当我把device option 和 device ID全改为0(不要求验证)就无法成功。

Eworm001 发表于 2011-4-23 15:21:05

Iphone开发参考

bjash 发表于 2011-4-28 21:37:32

Liaojinwei说得没错,我在最后得到CP的数字签容名,竟然ipod又给0X14要求授权. 因为我把checksum弄错了, 纠正后终于授权成功. 现在只是在需要IDPS时OK . 后面要做的是:兼容各种IPOD, 即纠错处理.二是增加稳定性,有时需要多插两下才成功.可能是在一些分步骤上,时间没处理好.我有一个问题,应该在apple网站上如果有交年费的, 可以进入PORTAL得到支持文档, 和例子代码.如IDPS,AUTH.

bjash 发表于 2011-4-28 21:41:28

SHU577和dhdahai,如果你们看一下MFi Accessory Firmware Specification R41 文档, 有详细

flyunlimit 发表于 2011-4-28 22:08:19

谁能给讲一下这些人在讨论什么?
用串口控制ipod放歌?不认证不也可以吗?还是说要用串口传输图片之类的复杂数据?

dhdahai 发表于 2011-4-29 08:38:30

回复【32楼】flyunlimit 飞行无极限
-----------------------------------------------------------------------

呵呵,我是想用串口控制ipod放歌。

不过看到最新的文档都改成idps了,所以想用idps,又想跳过auth

但不成功。。。

所以想看看有没有人这么做?

dhdahai 发表于 2011-4-29 08:55:44

回复【31楼】bjash
-----------------------------------------------------------------------

看样子苹果是想先用无需授权的指令引我们上钩,再慢慢将其淘汰掉。。。

zerolee 发表于 2011-5-2 20:25:36

请问,我用2.0的认证,已经iPod已经接受。但是从CP内读取计算过之后的Signature送回iPod时,iPod提示命令失败。请问大致上是什么原因啊?

bjash 发表于 2011-5-3 10:17:33

35楼: 1. ipod 给出的口令有没正确传给CP? (可用串口助手检查IPOD送来的20位口令,再看I2C 传送的数据是否与此一致) 2. 在CP 内部数字签名时, 先要写0x10控制字节, 再读. 此后要循环检查才能正解读出签名

bjash 发表于 2011-5-6 21:05:25

现在可以做出NO IDPS AUTH. 需要加一些防错程序

dgdzov 发表于 2011-5-21 16:18:34

各位,能否说一下mcu发完命令给ipod后,mcu怎么处理等待ack这部分吗?因为mcu还要做其它事情。
是一直等待ipod的ack,还是在中断里接收完,出来后再处理,能给个例子或说个大概流程。

Castle 发表于 2011-5-21 17:28:45

认真学习!

bjash 发表于 2011-5-29 16:08:49

MCU 要一直做完AUTH , 再去处理其它程序. 因为在3秒内如果没有完成, ipod会显示错误.即设备不支持ipod.
在发完TX后,要在等ipod发来的回应即接收RX.这可以通过一个子程序来完成.

cyan 发表于 2011-6-15 11:22:33

如果MCU在3s内只做Auth,那你的机子肯定得不到用户的认可

我的dual iPhone Dock都不会这样做.


本人一直在做这一方面的机子

从2006年做到现在, MFi, WWi, iAP over UART,iAP over Bluetooth, iAP over USB

communication with iOS Application

都是外国市面上的机子

dgdzov 发表于 2011-6-28 22:52:14

To:【41楼】 cyan
我发了个邮件给你,你能收到吗?有些问题想请教一下。

bjash 发表于 2011-7-4 20:59:32

cyan,

我不是说3s内MCU处理,是IPOD 规定在插入IPOD检测到 Acc power 后3S内必须完成认证.其实在1S内MCU基本可以完成.

leifeng 发表于 2011-7-4 23:15:38

ipod duck mark

cyan 发表于 2011-7-17 15:13:20

bjash

1s内MCU完成? 可能CP没有那么快, 一般都1.3 ~ 2s之间, 我做的这中间2s内MCU也可以做其它事情.

bjash 发表于 2011-7-26 21:33:51

cyan
没错

kimfufree 发表于 2011-8-18 21:16:48

3秒内认证没完成就会失败吗?ACC变高后都等了2秒,然后才开始,时间能赶得上吗?本人已经做到MCU发送签名数据,但是iPod回应失败,难道就是3秒内没完成认证过程?

kimfufree 发表于 2011-8-18 22:29:25

回复【35楼】zerolee
-----------------------------------------------------------------------

我也遇到过这个问题,刚才想通了,原先iPod发过来的20个字节是不带TransationID,现在换成IDPS开始后,iPod发过来的20个字节带TransationID,写入CP时注意20个数据起始位置要往后移2个。生成的签名数据发给iPod才正确。明天验证。

kimfufree 发表于 2011-8-19 18:22:41

想法是正确的,验证结果PASS。不知道多不多公司做这个iPod认证。

eroticisim 发表于 2011-11-2 14:11:31

各位:
IPAD和IPOD以及IPHONE的30PIN座子难道不同?
发送IDPS的SetFIDTokenValues到IPOD,IPOD上能够返回RetFIDTokenValues成功。
但IPOD会提示IPOD TOUCH不支持此配件。而IPAD同样的程序,发送过去没有任何反应。能告知么?

tansan 发表于 2011-11-22 17:52:20

24楼 liaojinwei88

不知你要做哪方面的東西,如果單獨只是為了消除彈出不支持圖標 ,不需要軟件照樣能夠處理掉。




liaojinwei88大侠,厉害,不认证能处理掉,使用什么办法呢? 能透露诀窍么?

TimCheng 发表于 2011-12-5 17:25:12

这样的贴子对现在的我来说很宝贵啊,呵呵

linghu2 发表于 2011-12-5 19:14:01

回复【18楼】shu577

2:为什么要先发送同步字节0xff 

-----------------------------------------------------------------------

自动检测波特率用的

mupro 发表于 2011-12-22 11:59:24

哦 这么多人做MFI呀,一般在1.1S到1.8S完成所有事情吧

comway 发表于 2011-12-22 12:22:10

wangying 发表于 2012-2-7 12:26:21

2G nano 6G nano Classic 通过USB识别和认证是不一样的吗?

wangying 发表于 2012-2-7 12:27:00

2G nano 6G nano Classic 通过USB识别和认证是不一样的吗?
具体怎么做呀?

wangying 发表于 2012-2-7 12:28:06

IdentifyDeviceLingo命令对于串口和USB通信方法一样吗?

wangying 发表于 2012-2-7 12:35:54

协议上说是IdentifyDeviceLingo命令 串口通信下可以支持lingo 00, lingo 02,等,而USB通信下只支持lingo 00。是这样的吗?

wangying 发表于 2012-2-7 12:37:46

IdentifyDeviceLingo命令在USB通信下使用lingo 04等命令这么办?

wangying 发表于 2012-2-7 12:38:22

请高手指教!

ksh84222 发表于 2012-3-27 10:12:50

好东西!

天空云的天空 发表于 2012-9-17 14:38:27

liaojinwei88 发表于 2011-3-22 22:23 static/image/common/back.gif
你也玩这个,有时间我们交流一下。 我也做了一个产品,IPOD&IPHONE douck 产品。目前已通过apple认证 ...

我目前正在做StartIDPS这一步,是通过蓝牙向iPhone发,发送的数据是55 04 00 38 00 00 checksum,checksum位试了c4、44,但都无法收到iPhone的返回信息(ACK),是什么原因导致收不到ACK呢,还望前辈指导!

oswald602 发表于 2012-10-7 17:04:56

我也在做这个,IDPS这块有点麻烦

lfxaut_111 发表于 2012-10-23 10:44:18

我现在也在做通过蓝牙发送StartIDPS, 遇到问题想请各位指导一下:
1发送StartIDPS(0x38) (55 04 00 38 00 01 C3), 接收返回 55 06 00 02 00 01 00 38 BF,返回正确。
2发送SetFIDTokenValues, 其中numFIDvalues=11, 发现只要Token 中包含AccessoryCapsToken 设置,accessory 就不能通过接收到任何返回,不知什么原因。AccessoryCapsToken 设置为:0x00,0x00,0x00,0x00,0x00,0xAE,0x0A,0x17

还请各位指教!

lfxaut_111 发表于 2012-10-23 15:48:25

自己顶!!!

moouse 发表于 2012-11-22 22:55:02

和IPHONE是一样的吗

wqx0532 发表于 2012-12-18 10:20:28

网上就没有个demo程序吗? 没搜到

wqx0532 发表于 2013-1-6 09:49:30

我现在正在做这个,单片机没有IIC总线,模拟了一个,一直没有ack返回,{:mad:}

wzyllgx 发表于 2013-1-6 10:58:41

我在这个贴子里面看到一个很操蛋的程序,呵呵,竟然还有这样写串口发送代码的,真大气。

success5can 发表于 2013-4-12 18:20:49

您好!我是最近公司需要做一个苹果MFI配件的产品,因对这块不是特别的了解,所以想请各位高人指教,我将不胜感激!我现在就是对MFI配件产品的开发流程,开发工具及相关的开发平台,比如用什么平台,什么开发语言开发该产品等等没有一个很感性的认识,希望大家能帮帮我,或者说能提供我一些开发的资料,或者方便的话,我加你们QQ,方便更进一步的交流。我的QQ是530791244!

ascii_he 发表于 2013-5-1 23:53:43

好多大神,膜拜!

riptell2008 发表于 2013-5-7 14:18:18

学习一下!!

dickjtk 发表于 2014-9-3 18:18:21

楼主: 我刚刚接触MFi这一块, 没有经验, 希望可以得到你的指导, 不胜感激. qq: 920678778

dickjtk 发表于 2014-9-3 18:24:45

本帖最后由 dickjtk 于 2014-9-4 16:07 编辑

liaojinwei88 发表于 2011-4-23 11:55
按照我上面發送的指令作一下修改應該就能夠成功。

刚刚接触iAP2这一块, 找不着北, 希望能得到前辈的帮助,
qq: 920678778

dickjtk 发表于 2014-9-4 14:56:18

bjash 发表于 2011-3-15 19:08
现在已可完成IDPS,并返回0x00成功状态,并且IPOD已发出了0X14 要求授权, 只是发了三次(每次15s) 后我没有给 ...

楼主交流一下呗, 我也刚刚开始接触MFi这一块, 希望可以得到指导. QQ: 920678778

dickjtk 发表于 2014-9-4 16:06:14

cyan 发表于 2011-6-15 11:22
**** 作者被禁止或删除 内容自动屏蔽 ****

可以交流一下么~~qq: 920678778

dickjtk 发表于 2014-9-4 16:08:32

lfxaut_111 发表于 2012-10-23 10:44
**** 作者被禁止或删除 内容自动屏蔽 ****

希望可以跟你交流学习一下, qq: 920678778

dickjtk 发表于 2014-9-4 16:09:54

success5can 发表于 2013-4-12 18:20
**** 作者被禁止或删除 内容自动屏蔽 ****

希望可以跟你交流一下关于MFi跟iAP2相关的东西~~qq: 920678778

dickjtk 发表于 2014-9-4 16:18:47

mingyuexin1981 发表于 2011-4-20 14:43
楼上,有什么问题讲出来吧,大家一起讨论。我刚刚做完了苹果的idps认证,有一些经验教训可以互相借鉴啊 ...

我现在也是在着手做这个东西, 需要实现iphone手机上的ipod播放的音乐通过usb传输音频流跟曲目信息到车载上,
但是也不晓得如何入手, 希望可以获得帮助, 谢谢~~~

hemingjing 发表于 2014-12-25 17:39:46

dickjtk 发表于 2014-9-4 16:18
我现在也是在着手做这个东西, 需要实现iphone手机上的ipod播放的音乐通过usb传输音频流跟曲目信息到车载 ...

你这个是要显示ID3之类的信息吗?

Dragontan 发表于 2015-3-9 14:26:15

请问ipod认证协处理器的ic在哪里可以买的到!谢谢

leonliu_1128 发表于 2015-3-10 22:12:45

Dragontan 发表于 2015-3-9 14:26
请问ipod认证协处理器的ic在哪里可以买的到!谢谢

iap1MFI341S2313
页: [1]
查看完整版本: ipod IDPS认证