福井クラフト 六角箸 OM 面取タイプ 最大67%OFFクーポン SPS 直送品 1セット 売れ筋介護用品も 20入

福井クラフト 六角箸 OM (面取タイプ) SPS 1セット(20入)(直送品)

福井クラフト 六角箸 OM 面取タイプ SPS 直送品 1セット 売れ筋介護用品も! 20入 福井クラフト 六角箸 OM 面取タイプ SPS 直送品 1セット 売れ筋介護用品も! 20入 SPS,1セット(20入)(直送品),2500円,OM,福井クラフト,(面取タイプ),maxstore.vn,生活雑貨/キッチン用品 , 食器/卓上用品 , スプーン/フォーク/箸/カトラリー , 箸 , 福井クラフト 六角箸 OM,/biciliate586294.html,六角箸 2500円 福井クラフト 六角箸 OM (面取タイプ) SPS 1セット(20入)(直送品) 生活雑貨/キッチン用品 食器/卓上用品 スプーン/フォーク/箸/カトラリー 箸 福井クラフト 六角箸 OM SPS,1セット(20入)(直送品),2500円,OM,福井クラフト,(面取タイプ),maxstore.vn,生活雑貨/キッチン用品 , 食器/卓上用品 , スプーン/フォーク/箸/カトラリー , 箸 , 福井クラフト 六角箸 OM,/biciliate586294.html,六角箸 2500円 福井クラフト 六角箸 OM (面取タイプ) SPS 1セット(20入)(直送品) 生活雑貨/キッチン用品 食器/卓上用品 スプーン/フォーク/箸/カトラリー 箸 福井クラフト 六角箸 OM

2500円

福井クラフト 六角箸 OM (面取タイプ) SPS 1セット(20入)(直送品)

商品の特徴 六角箸 OM (面取タイプ) SPS
商品仕様 メーカー 福井クラフト ブランド 福井クラフト
カラー 商品タイプ SPS

「商品タイプ」 違いで 全2商品 あります。

備考 【返品について】お客様のご都合による返品はお受けできません。
商品詳細情報
  • メーカーサイトはこちら newwindow

福井クラフト 六角箸 OM (面取タイプ) SPS 1セット(20入)(直送品)

2021.05.11

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

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

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

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

トラスコ中山(TRUSCO) TRUSCO 真鍮洋灯釘45mm5本入 TYT-B45 1パック(5本) 275-7532(直送品)

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

ノイズのヒストグラムはだいたい正規分布になっているのですが、少し左に寄ったり右に寄ったりするのは、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の無信号時のヒストグラムは正規分布に近いといえるでしょう。

 

| 部品(高エネルギー吸収シリンダ用(スイッチ本体+取付レール一式)) HCM-T2YH-T-63-300(直送品) | コメント (0)

2021.05.09

マイティ 屋内用テレビコンセントプラグ MT5FWH*(直送品)

マイクロソフトの署名を施した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出ています。

| 三木プーリ モーター周辺部品 トルクリミタ 2軸突き合わせタイプ(シグナルピン付) TT-2-01-12-14H-10NM-P 1個(直送品) | コメント (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越しに行えるようにしているので、セキュリティ的なことを考えれば、パスワードによる保護とかいろいろしなければならないんでしょうね。

 

| 【1cm単位】プロ仕様ブラインド幅90cm×高58cm<遮熱タイプ> ctb835-90x58r48 1セット トーソー(直送品) | コメント (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の詳細はこちらにあります。

日本オートマチックマシン(JAPAN AUTOMATIC MACHINE) サインバー SB50 1ケ(直送品)

このような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を買ってみた