DDC MIL-STD 1553B AceXtremeについて 最終更新 2026.06.25

本ページに説明されているサンプルプログラムはすべて、DDC社の著作物です。DDC社からの許可無く、転載はできません。ご注意ください。
ドキュメントの内容は予告無く変更する事があります。
ここに、記載した商品名は、一般にDDC社の商標または登録商標です。
DDCの著作権は、DDCサイトの著作権表示をご覧ください。弊社著作権についてのポリシーは、 [hand.right] こちらをご覧ください。
外部サイトへのリンクはで示されています。


  • AceXtremeのHbuf関数について


    BCホストバッファ(HBUF)は、ホスト上に常駐する循環メモリバッファであり、バスコントローラから送信されたすべてのメッセージのログを、1553バス上に現れた順序で格納します。
    このイベントは、 BC割り込みイベントとして、スレッドのコールバック関数として通知されます。

    	aceSetIrqConditions(Cardnum, bEnable, ACE_IMR1_EOM, funcExternalISR);

    ACE_IMR1_EOM(ビット0) メッセージ終了イベントを有効にする
    (割り込みマスクレジスタ#1のビット0が0または1に設定されています)
    このマスクは、BC、RT、および選択モニタモードで、すべてのメッセージの完了時に割り込みを発生させます

    そして、このコールバック関数は以下のように定義することが出来ます。

    void funcExternalISR(S16BIT DevNum, U32BIT Status)
    {
    	U32BIT dwMsgCount=0,dwMsgLostHBuf=0;
    	S16BIT raw[ACE_MSGSIZE_B]
    	S16BIT s16Result = 0;
    	U32BIT u32MsgCount = 0;
    	U32BIT u32MsgLost = 0;
    
    	if (ACE_IMR1_EOM & Status)
    	{
    		if ((dwMsgCount = aceBCGetHBufMsgCount(Cardnum))==0) 
    		{ /* HBUFのデータが用意される前に、コールバック関数が実行される事がある*/
    			while (( dwMsgCount = aceBCGetHBufMsgCount(Cardnum))==0)
    			{
    				struct timespec w0 = {0,200000};//200マイクロ
    				nanosleep(&w0, NULL);
    				timeout --;
    				if(timeout==0) 
    				{//2ms
                            		fprintf(stderr,"Fatal Error : Can not get data Status=0x%X\n",Status);
    					return;
    				}
    			} ;
    	/*
    		Rawフォーマットは、バイナリデータへのU16BITポインタを返す。この方法を使用すると、ホストバッファから複数のメッセージを一度に読み取ることができる。
    		各メッセージは42ワードの固定長で、ワードの最大サイズを必要としないメッセージにはゼロフィルワードが使用される。
    		たとえば、2つのメッセージが送信された場合、バイナリデータは84ワードの深さになり、2番目のメッセージはオフセット42から始まる。
    	*/
    		do
    		{
            		memset(raw,0,sizeof(short)*ACE_MSGSIZE_BC);
    			s16Result = aceBCGetHBufMsgsRaw(Cardnum, raw, ACE_MSGSIZE_B, &u32MsgCount, &u32MsgLost);
    			if (s16Result)
                    	{
                            	fprintf(stderr," BC Message Lost Error : aceBCGetHBufMsgsRaw() ");
                            	PrintOutError(s16Result);
    				return;
                    	}
    			else
    			{
    				if ((u32MsgLost!=0)||(u32MsgCount!=1))
    				{
                            		fprintf(stderr," BC Message Lost Error : aceBCGetHBufMsgsRaw() MsgLost = %d u32MsgCount=%d aceBCGetHBufMsgCount()=%d",u32MsgLost,u32MsgCount,aceBCGetHBufMsgCount(Cardnum));
    					return;
    				}
    			}
    		} while((dwMsgCount = aceBCGetHBufMsgCount(Cardnum))!=0);/* 1回のコールバックで複数回のデータが転送される場合がある。*/
    
    	}
    }
    

  • ファームウェアアップデートの方法

    ddccmで、下記の様にファームウェアの版が異なる場合には、ファームウェアをアップデートしてください。
    アップデート後に一度電源OFFが必要です(再起動ではNG)
    
    # ddccm
    
    ===========================================================
      Data Device Corporation Card Manager   v3.7.0
    ===========================================================
    
        1    1553 Data Bus
        2    ARINC 429
        3    Synchro
        4    Power
    
    Enter desired product family (-1 to quit): 1
    ------------------------------------------------------------------------------------
     Item  Dev   Device Name      Model   Ch   Location          Status  Curr.   Rec.   
           Num                                                           FW Rev. FW Rev.
    ------------------------------------------------------------------------------------
    (!) 1     -  BU-67206BK2        2      1   05:00:00          Ready    9.0     9.8 
    (!) 2     -  BU-67206BK2        2      2   05:00:00          Ready    9.0     9.8 
    
    (!) This device does not match the recommended firmware revision
    
    Enter command ('h' for help): f
    
    ----------------------------------------------------------------
     Device  Name            Model  FW ID   Current  Recommended
                                            FW Rev.  FW Rev.
    ----------------------------------------------------------------
    (!)  1   BU-67206BK2       2    76905    9.0      9.8    
    ----------------------------------------------------------------
    
      (!) This device does not match the recommended firmware revision
    
    
    Enter the number of the Device # to flash (0 to exit): 1
    Enter the filename to program: /usr/local/CCUR/drivers/ddc1553-69092/ddc1553-69092/flash/firmware/bu67206bkx_rev_9_8.bin
    
    
       Device:                 BU-67206BK2
       File Name:              /usr/local/CCUR/drivers/ddc1553-69092/ddc1553-69092/flash/firmware/bu67206bkx_rev_9_8.bin
       File Size:              6297121 bytes
    
       Are you sure you want to flash the selected device?
    
       Enter 'y' or 'n': y
    
       Erasing Flash Sector:  1 / 49
       Erasing Flash Sector:  2 / 49
       Erasing Flash Sector:  3 / 49
       Erasing Flash Sector:  4 / 49
       Erasing Flash Sector:  5 / 49
       Erasing Flash Sector:  6 / 49
       Erasing Flash Sector:  7 / 49
       Erasing Flash Sector:  8 / 49
       Erasing Flash Sector:  9 / 49
       Erasing Flash Sector: 10 / 49
       :
       Programming  97%   0x005D8000
       Programming  97%   0x005E0000
       Programming  98%   0x005E8000
       Programming  98%   0x005F0000
       Programming  99%   0x005F8000
       Programming  99%   0x00600000
       Programming 100%   0x00601621
    
    
       Device Flashing Complete!
    
       You MUST power down your system and restart for changes to take effect.
    
    Press  to continue...
    
    Enter command ('h' for help): q
    
    
    
    

[back]Back