大特価☆☆ウイスキーミニボトルまとめ売り☆☆ 新作多数 85%以上節約

大特価☆☆ウイスキーミニボトルまとめ売り☆☆

大特価☆☆ウイスキーミニボトルまとめ売り☆☆ 85%以上節約 /inthrong1615214.html,shiatsunormandie.fr,その他 , 飲料 , 酒 , ウイスキー,1750円,大特価☆☆ウイスキーミニボトルまとめ売り☆☆ 1750円 大特価☆☆ウイスキーミニボトルまとめ売り☆☆ その他 飲料 酒 ウイスキー 1750円 大特価☆☆ウイスキーミニボトルまとめ売り☆☆ その他 飲料 酒 ウイスキー /inthrong1615214.html,shiatsunormandie.fr,その他 , 飲料 , 酒 , ウイスキー,1750円,大特価☆☆ウイスキーミニボトルまとめ売り☆☆ 大特価☆☆ウイスキーミニボトルまとめ売り☆☆ 85%以上節約

1750円

大特価☆☆ウイスキーミニボトルまとめ売り☆☆

商品の状態新品、未使用
配送料の負担送料込み(出品者負担)
配送の方法らくらくメルカリ便
発送元の地域愛知県
発送までの日数2~3日で発送


転居のため集めておりましたウイスキーミニボトルまとめ売り致します。売り切りたいのでまとめてのご検討願います。 ☆☆非売品Hannessyネクタイピン付き☆☆ サントリー角瓶:50ml サントリーROYAL:50ml サントリーVSOP:50ml キリンSeagram:50ml サントリーOLDラベル違い2本:50ml REMY MARTIN:サイズ表記なし30mlくらい 計7本

大特価☆☆ウイスキーミニボトルまとめ売り☆☆

2021.05.11

14bit ADCのノイズのヒストグラム

ADCの無信号時のヒストグラム表示時に、標準偏差から求めたガウシアン曲線を同時に表示できるようにしました。

14bitのADCの生データは、12bitの場合よりも大きくなります。

このヒストグラムを取ってみると、だいたい±2~3本くらいかなという感じになります。

ECCジュニア CD DVD PIクラス

リアルタイムに平均と標準偏差を計算し、滑らかなグラフを同時に表示できるようにしてみました。

ノイズのヒストグラムはだいたい正規分布になっているのですが、少し左に寄ったり右に寄ったりするのは、ADCのINLやDNLというやつなのでしょう。出やすい値、出にくい値というのがあるのです。

標準偏差は1.99~2.4LSBと幅があるのですが、なぜでしょうね。

今回のADCは14bitなので1LSB=61μVです。よってADCの計測した値の誤差はチャネルによっても異なりますが、間を取って2.2LSBとすればだいたい±0.13mVといえます。

なんと!

12bitのADCの場合も誤差は0.13mVだったので、ビット数が増えても誤差は変わっていないのです。

 

| | コメント (0)

2021.05.10

高速ADCのヒストグラムと標準偏差

高速なADCや、ビット数の多いADCでは、ADCの入力に何も入れなくても(GNDに接続していても)、変換値は止まらずに常に揺れ動いています。この揺れ、つまりノイズの標準偏差を計算できるようにプログラムを改良してみました。

使用しているADCは、Analog DevicesのAD9633、使用したボードはCosmo-Zです。

 

まず、無信号時の波形というのはこんな感じです。常に揺れていますね。

このヒストグラムを取ってみると、

このように中心から1~2LSB広がったヒストグラムとなります。

1LSB=244μVなので、このADCは誤差0.244mVで測定できるということになりますが、1~2本という人間の目の感覚は正確ではないので、単純ではありますが平均値、標準偏差を計算して表示してみることにしました。

実行結果は#stddevと書かれた行に出ていて、平均値は2048.83、標準偏差は0.55となっています。

つまり、計測値は標準偏差0.55(LSB)=±0.13mV程度の誤差があると言えるでしょう。

 

で、このヒストグラムが本当にガウシアンの形をしているのかどうかを確かめるために、Excelに入れてグラフ化してみました。

ヒストグラム自体は2049を中心として±1くらいのひろがりを持っていますが、

y=ピーク値×exp{-(x-平均)^2/標準偏差^2}のグラフを描いて同時に表示させてみると、

なかなかいい感じになりました。(オレンジの点が測定値。青の線が計算したガウシアン)

ADCの無信号時のヒストグラムは正規分布に近いといえるでしょう。

 

| ぼたもち様専用 3点 | コメント (0)

2021.05.09

上越国際スキー場、岩原スキー場の大人用リフト券2枚

マイクロソフトの署名を施したSpartan-7ボード用のUSBデバイスドライバをリリースしました。ようやくWindows10でセキュアブートを入れたまま、テストモードにせずに動くドライバのリリースができました。

ドライバはこちらのページにございます。

https://www.tokudenkairo.co.jp/sp7/download.html

 

このドライバはごく初期のEZ-USB FX2用のezusb.sysを64bitに拡張してオブジェクト名などを変えただけのものなのですが、Windows10でも問題なく動くし、マイクロソフトでの検証もパスしています。

気になる通信速度ですが、IN方向で約30MB/sec、OUT方向で約40MB/sec出ています。

| クシタニ フルメッシュパーカージャケット | コメント (0)

2021.05.08

Windowsのデバイスドライバをマイクロソフトに送って署名してもらう方法

Windowsのデバイスドライバは署名がないとインストールされないのはよく知られていると思います。

Windows XPや7の頃はカーネルモードの署名を施せばインストールすることができましたが、いつからかEV証明書というのが必要になり(証明書の値段が2倍近くになった)、2016年ごろのWindows 10 Anniversal UpdateからEV証明書でもダメになって、マイクロソフトに署名してもらうことが必須になりました。

2020年のこの記事や、2017年のこの記事でも書いたとおり、自分で作ったドライバをマイクロソフトの署名なしに動かすには、

① Windows10がAnniversary Update以前のものからアップデートされている
② PCでセキュアブートを無効にしている
③ 証明書が2015年7月29日以前に発行されている
④ ドライバがOS起動時にロードされる(一時的な措置であり、将来無効になるかも)

のどれかが必要でした。

なお、特電で販売しているSpartan-6ボードは2009年からあるし、Artix-7ボードも2011年ごろからあるので、上の③の条件を満たしているから動くのですが、新しいドライバが作れなくなってしまいます。なお、④の方法はうまくいきませんでした。私は③の方法で古い製品のVID、PIDを使い続けて、古いドライバを使うのがよいと思っているのですが・・

そのため、自作のデバイスドライバを動かすため「セキュアブートを無効にしてください」というようなお願いをしているハードウェアメーカーも少なからずあります。 

そろそろマイクロソフトに認証してもらうことからは逃げられなくなってきたのですが、気になるポイントは2つあります。

● ドライバに厳しいテストをしなければいけないのか?

● 追加の費用が発生するのか?

このあたりが気になるところです。

そういうわけで、マイクロソフトに送って署名を施してもらう方法を調べてみました。

やり方はここここに書いてあるのですが、ざっくり言うと、

  • EVコードサイニング証明書を取得する(SSLのEV証明書とは別) ※追記
  • 「マイクロソフトのハードウェアパートナープログラム」に登録する。
  • 署名を施したものをCABでアーカイブする
  • ハードウェアパートナープログラムのWebから送信する

というもので、意外とあっけないものでした。

手順通りにやったら、本当にあっけなく、ドライバがインストールされて動作しました。

今までの心配はなんだったんだろう。。

 

それでは手順を説明します。まずEVコードサイニング証明書をGMOグローバルサインとかで購入してください。 ※追記

それから、Azure Active Directoryへの登録を行います。Azure Active Directoryというのはユーザ名@会社名.onmicrosoft.comのメールアドレスが発行されるアレです。

この登録フォームで会社名を入れていくと、唐突に「コード署名証明書」を要求されます。

このページからbinファイルをダウンロードして、signtoolを使って署名を施します。

署名を施したbinファイルをサイトにアップロードすると先に進めるようになります。

EV証明書を持っていないと先に進めません。厳しいですが、EV証明書は会社が存在していれば簡単に取得できるので、そんなに難しい話ではありません。ツイッタランドにのみ存在する架空の会社ではドライバが作れないのでご注意ください。

 

登録が済むと、Microsoftパートナーセンタのハードウェアダッシュボードが開きます。

いろいろな試行錯誤をした後なのでごちゃごちゃとあります(不要なプロジェクトが消せない)。

Submit New Hardwareをクリックします。

ハードウェアの名前を入力して、灰色の部分にINFとSYSとCATを固めたCABファイルをドラッグアンドドロップします。

簡単に説明すると、デバイスドライバの本体はSYSファイルで、それをインストールするためのファイルがINFファイルです。INFを書いたらinf2catでCATファイルに変換して、signtoolでCATとSYSに署名をします。コインストーラのDLLとかがある場合は一緒に固めます。ここまでは従来のデバイスドライバの開発と同じです。

異なる点は、INF,CAT,SYSをどこかのディレクトリに入れて、DDFファイルを書いてCABを作ることです。

;**_ Echo.ddf example
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
;Specify file name for new cab file
.Set CabinetNameTemplate=tkdnsp6x64.cab
; Specify the subdirectory for the files.
; Your cab file should not have files at the root level,
; and each driver package must be in a separate subfolder.
.Set DestinationDir=win10x64
;Specify files to be included in cab file
D:\naitou\np1116\np1116fw\win10driver\win10x64\tkdnsp6x64.cat
D:\naitou\np1116\np1116fw\win10driver\win10x64\tkdnsp6x64.sys
D:\naitou\np1116\np1116fw\win10driver\win10x64\tkdnsp6x64.inf

こういうファイルを作っておいて、

makecab /f tkdnsp6x64.ddf

とすれば、指定されたファイルがCABに固められます。普段はCABで圧縮することなんてないので、こんなファイルを作る機会はめったにないと思います。署名してディレクトリ作ってコピーしてCABで固めるという作業は何度も試行錯誤すると思うのでバッチファイルを作ったほうがいいでしょう。

その次に、どんなハードウェアをサポートするかというチェックボックスがあるので、x64と書いたものを全部チェックしておきます。

これでSubmitを押せば提出完了です。

マイクロソフトのサーバの中で検証が行われ、画面が自動的に更新されていきます。

最初のPreparationでINFファイルのエラーが徹底的に検証されます。おそらく、最初は何度もエラーが出て拒否されるのではないかと思います。

そのたびにINFを直して再度CABを作ってEV署名して、新たなプロジェクトを申請して、という試行錯誤を繰り返します。

エラーがなければ、Scanning、Validation、Catalog creation、Sign、Finalizeのすべてのプロセスが15分くらいで完了します。

そうしたら名前の右にあるMoreをクリックして、下の図にあるDownload signed filesを出し、これを押します。

これで、マイクロソフトに署名されたドライバがダウンロードできるというわけです。

このドライバをインストールすれば最新のWindows 10で、セキュアブートを有効にしたまま動かすことができます。

めでたしめでたし。

 

ちょっと、署名の中身を見比べてみましょう。

ドライバのCATファイルのプロパティから、デジタル署名のタブを開いてみます。

自分でEV署名を行った状態では、署名者名が自分になっています。

マイクロソフトに提出したものをダウンロードしたドライバでは、署名者名がMicrosoft Windows Hardware Compatibility Publisherに変わっています。おおー

また、拡張キー使用方法というところが「コード署名 (1.3.6.1.5.5.7.3.3)」だけだったのが、

「Windows ハードウェア ドライバーの確認 (1.3.6.1.4.1.311.10.3.5) Windows ハードウェア ドライバーの構成証明付き検証 (1.3.6.1.4.1.311.10.3.5.1) コード署名 (1.3.6.1.5.5.7.3.3)」に増えています。

なんだかよくわからんが、強そうだ。

 

あと、署名が完了したら、パートナーセンターのNew Shipping Labelというところを押せば、Windows Updateを通じて配布できるようになるらしいです。つまり、「USBでつないだら自動的にWindows Updateからドライバがダウンロードされてインストール」ができるようになるのですが、どのようなテストをしたかとか、協力しているマイクロソフトスポンサーのメールアドレスとか書かなければならないようなので、ちょっとハードルが高いですね。

自分のサイトでのみ配布することにしておけば、ここまでで十分です。

そういえば、ドライバに厳しいテストをする場面やテストレポートの提出はありませんでした。また、費用も発生しませんでした。

想像していたような怖いものではなかったので、デバイスドライバを開発した人はぜひチャレンジしてみてください。

| | コメント (0)

2021.05.03

Cosmo-Zの操作アプリをWindowsに移植中

これまでZYNQ Linuxで動作していたCosmo-Zを操作するアプリ「cszmain.elf」をWindowsに移植中です。

苦労しているのは、string.hの関数の扱いです。

なぜだかわかりませんが、Linuxでは大文字小文字を気にしない文字列比較がstrcasecmpなのに、Windowsではstricmpになります。Visual C++だけでなくBorland C++でもstricmpなのでなぜなんでしょうね。

他にも、Visual C++だとstrcatとか使えなくてstrcat_sになっていたり、strdupは_strdupになっていたりするので一つ一つ置き換えていきます。

ディレクトリの中のファイル一覧を見る関数とかは全面的に変えなければならないでしょうね。

このような単純な置き換え作業がまだまだ続きます。

 

| | コメント (1)

2021.05.02

Cosmo-Zの波形キャプチャプログラムをWindowsに移植

Cosmo-Zの波形キャプチャプログラムcsz_captureを、Windowsに移植できました。

昨日得られた知見どおり、TCP/IPのパケットをwrite-read-write-read-・・・とすることで、レスポンスが劇的に改善されました。同一LAN内であればネットワーク越しに操作していることを感じさせない応答性の良さです。

ZYNQのPLに置いたレジスタへの書き込みや、ZYNQのメモリの物理アドレスを指定したアクセスというローレベルな動作をTCP/IP越しに行えるようにしているので、セキュリティ的なことを考えれば、パスワードによる保護とかいろいろしなければならないんでしょうね。

 

| 猫柄がま口手提げバッグ | コメント (0)

2021.05.01

PCとZYNQ Linux間のTCP/IP通信プログラム(2)

このようなアーキテクチャになると、TCP/IP越しに行われる操作はレジスタリードやレジスタライトといったプリミティブな操作なので、プロトコル的には、

こんなやりとりを何度も何度も繰り返すわけです。1回の計測で数十回の操作が生じるとは思うのですが、細かいパケットをどのくらいの速さで投げ合えるかということがレスポンスを左右するポイントになります。

 

単純に実験してみた感じでは16バイト小分けにしてsend()関数を呼んでも、実際に送出されるときには複数個まとめられて1500バイトくらいのパケットになってしまってよくわからないので、

int yes = 1;
setsockopt(sock, SOL_TCP, TCP_NODELAY, &yes, sizeof(yes));

とやってNagelのアルゴリズムがOFFになって1個1個のパケットで出ていくかと思ってやってみたのですが、少しはバラけたものの完全に1個1個分離されることはありませんでした。

 

サーバ側でrecvしておいて何かのコマンドを受け取ったらsendで返す。クライアント側ではsendして、recvで何かを受信したら次にsendをする、というプログラムを組んで実験してみました。

その結果、

TCP dumpで見てみると、だいたい1ミリ秒で1.5~2往復くらい出来ているようです。つまり毎秒1500~2000回のレジスタリード/ライトができるようです。

もちろん地球の裏にあるようなCosmoZを操作するなら重くなるかもしれませんが、同一ネットワーク内にあるZynq Linuxを操作するなら十分な速度が出ているといえます。

 

あと、send関数などのmanか何かで読んだのですが、write-write-readのプロトコルを作るのは推奨されないとのことでした。TCP/IPの送信制御タイミングの問題で待ち時間が生じるようです。

レジスタライトのようにレスポンスがいらない操作の場合にまさにこの状況が発生します。レジスタライトだと、PCからZYNQへアドレスとデータをパケットを送るだけでよく応答を見る必要はないのですが、その後にレジスタリードを行うとwrite-write-readになってしまいます。これをするとものすごく遅くなります。30回の操作で1秒くらいの待ち時間が生じていたような気がします。レジスタライトに0000とかダミーの応答を返すようにしたら驚くほど速くなりました。

こういったAPIやプロトコルを設計する場合は、応答が必要のないコマンドでも何らかの応答を返すようにしないといけないようですね。

 

| | コメント (0)

2021.04.30

PCとZYNQ Linux間のTCP/IP通信プログラム(1)

私はCosmo-ZというDAQボードの開発をライフワークにしています。Cosmo-ZはZYNQでLinuxが動いているスタンドアローンの計測器で、APIが公開されているので、Linuxのアプリを書けばオリジナルな計測が可能になる、ということでした。

現状のCosmo-ZのAPIは以下のような構造になっています。APIの詳細はこちらにあります。

トイプードル 切り絵

このようなAPIを公開してきたのですが、やはり、ユーザは計測プログラムはZYNQ Linuxではなく、PC上で計測をしたりアプリを作ったりしたいのではないのかとも考えてきました。

 

そこで、PCで動く計測アプリが作れるようにと考えてきたのですが、Cosmo-Z APIの1個1個の関数をRPCにするのは関数名や呼び出し規約を登録が大変だし、APIの粒度を上げて抽象的な操作をできるようにするには新たなAPIの開発が大変だし、ということであまり進んできませんでした。

実際に粒度を上げてPythonのXMLRPCで接続しようとしたり、LabViewインタフェースを作ったりもしてきましたが、どれもうまくいきませんでした。うまくいかなかった原因というのは、XMPRPCはそもそも重いし、Pythonで計測データが格納された大きな配列を扱うのはデータのコピーが何度も発生して無駄が多いし、LabViewインタフェースは図面で描くのがわけがわからなくなったりというほかに、トリガ待ちという状態でブロッキングするか否かということも大きかったように思えます。

そもそもPythonとか既存のRPCのしくみを使おうと思っていたのは、私自身のTCP/IPソケットプログラミングに対する苦手意識からなのですが、高位の言語によるAPIの開発がうまくいかなかったので、LinuxとWindowsのソケットプログラムをもういちど頑張ってみました。

 

今回の設計では、思い切って大胆にレジスタリード、レジスタライト、メモリリード、メモリライトをTCP/IP越しにできるようにしてみました。

つまり、粒度の低い、逆に言えばきめ細かくC言語で制御できるAPIをWindows上で動かし、メモリ操作やレジスタ操作が発生した場合にTCP/IP経由で操作するというわけです。

 

| | コメント (0)

«Wio Terminalを買ってみた