檢視:
USB_Joystick.pdf
下載:
USB_Joystick.tex
編譯方式 (若有 .bib 檔可能需要先 rm 刪除掉):
xelatex USB_Joystick
bibtex USB_Joystick
xelatex USB_Joystick
xelatex USB_Joystick
evince USB_Joystick.pdf
% Latex Beamer - USB Joystick
% 2015/06/17
%===============================================================
% LaTeX Beamer environment setting
\documentclass[xetex,mathserif,serif,xcolor=dvipsnames]{beamer}
% 解決 XeTeX 中文的斷行問題
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\usepackage{color, colortbl}
\usepackage{caption}
\usepackage{url, hyperref}
\captionsetup{skip=0pt,belowskip=0pt}
%===============================================================
%% 字型 Fonts Setting
%% Reference: http://hyperrate.com/thread.php?tid=23544
% 預設英文字體
\usepackage{arevmath}
\usepackage[no-math]{fontspec}
\setmainfont[Scale=0.9]{DejaVuSansMono}
% 預設中文字體
\usepackage[CJKchecksingle, normalindentfirst, SlantFont, BoldFont]{xeCJK}
\setCJKmainfont{金梅新中楷國際碼}
% 自定義字體切換指令
% 中文
\newfontfamily{\J}{金梅新中楷國際碼}
\newfontfamily{\B}{華康中黑體}
% 英文
\newfontfamily{\D}[Scale=0.9]{DejaVuSansMono}
\newfontfamily{\T}{Times New Roman}
\newfontfamily{\A}{Arial}
% 粗體字
% \textbf{內容}
%===============================================================
%% Theme 設定主題樣式
\usetheme{Madrid}
%===============================================================
%% Color Theme設定投影片顏色
\usecolortheme{beaver}
%===============================================================
% 設定列表樣式
% 可以選擇:ball, circle, rectangle, default
\setbeamertemplate{items}[ball]
\setbeamertemplate{caption}[numbered]
%===============================================================
%隱藏 beamer 底部小工具列
\setbeamertemplate{navigation symbols}{}
%====================================================================
% 重設 frametitle 的預設為置中,上方的 usetheme 要改為 [height=0]
\setbeamertemplate{frametitle}[default][center]
%==============================================================================
%% Reference Table
% https://zh.wikipedia.org/wiki/BibTeX
% http://tex.stackexchange.com/questions/68080/beamer-bibliography-icon
\begin{filecontents}{\jobname.bib}
@article{ref1,
author={林永昌},
title={USB規格與技術},
journal={CCL TECHNICAL JOURNAL},
pages={26--32},
volume={103期},
year={2003-03-25}
}
% http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5776968
@article{ref2,
author={Yung-Hoh Sheua, Tsun-Hsiang Fu, Chun-Ming Ku},
title={The Design of FlexRay/CAN/LIN Protocol Analyzer},
pages={5466--5469},
year={2011},
journal={Electric Information and Control Engineering (ICEICE)}
}
% http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6287165
@article{ref3,
author={Nurul Fatihah Jusoh, Muhammad Adib Haron, Fuziah Sulaiman },
title={An FPGA Implementation of Shift Converter Block
Technique on FIFO for RS232 to Universal Serial
Bus Converter},
pages={219--224},
year={2012},
journal={Control and System Graduate Research Colloquium (ICSGRC)}
}
% http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6168758
@article{ref4,
author={Nurul Fatihah Jusoh, Azlina Ibrahim, Muhamad Adib Haron and Fuziah Sulaiman},
title={An FPGA Implementation of Shift Converter Block
Technique on FIFO for UART},
pages={320--324},
year={2011},
journal={RF and Microwave Conference (RFM)}
}
@book{b1,
title={USB 2.0 系統開發實例精解},
author={廖濟林},
isbn={9789861990040},
year={2007},
publisher={城邦文化事業股份有限公司},
keywords = {USB}
}
@book{b2,
title={USB 2.0 原理與研發技術},
author={王成儒、李英偉},
isbn={9572152688},
year={2006},
publisher={全華科技圖書股份有限公司},
keywords = {USB}
}
@book{b3,
title={微處理機與 USB 主從介面之設計與應用},
author={許永和},
isbn={9574997677},
year={2006},
publisher={儒林圖書有限公司},
keywords = {USB}
}
@book{b4,
title={USB 規格與理論剖析},
author={許永和},
isbn={9789574998692},
year={2009},
publisher={儒林圖書有限公司},
keywords = {USB}
}
@book{b5,
title={USB 應用開發技術大全},
author={薛園園},
isbn={9789862041529},
year={2008},
publisher={文魁資訊股份有限公司},
keywords = {USB}
}
@online{arduino,
author={Circuits@Home},
title={USB Host Shield 2.0 for Arduino},
howpublished={\url{https://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino}},
note={Accessed:2015-06-08}
}
@misc{p1,
title={USB Protocol Analyzer},
yesr={2013},
howpublished={\url{http://goods.ruten.com.tw/item/show?21303303948219}},
note={Accessed:2015-06-08}
}
@misc{p2,
title={Beagle USB 12 Protocol Analyzer},
howpublished={\url{http://www.totalphase.com/products/beagle-usb12/}},
note={Accessed:2015-06-08}
}
@misc{p3,
title={MQP Electronics Packet-Master USB 12},
howpublished={\url{http://www.mqp.com/usbdev_buy.htm}},
note={Accessed:2015-06-08}
}
@misc{p4,
title={ITIC 1480A USB 2.0 Protocol Analyzer},
howpublished={\url{http://www.internationaltestinstruments.com/products/97-1480a-usb-20-protocol-analyzer.aspx}},
note={Accessed:2015-06-09}
}
@misc{p5,
title={Elisys USB Explorer 200 Basic},
howpublished={\url{http://www.ellisys.com/products/usbex200/}},
note={Accessed:2015-06-09}
}
@misc{p6,
title={LeCroy Conquest Standard},
howpublished={\url{http://teledynelecroy.com/protocolanalyzer/}},
note={Accessed:2015-06-09}
}
@misc{mcp2200,
title={MCP2200},
howpublished={\url{http://www.microchip.com/wwwproducts/devices.aspx?dDocName=en546923}},
note={Accessed:2015-06-06}
}
@misc(ncku,
title={USB (Universal Serial Bus)},
author={成大資工},
howpublished={\url{http://wiki.csie.ncku.edu.tw/embedded/USB}},
note={Accessed:2015-06-13}
}
@misc{zeroplus,
title={USB2.0信號分析技巧},
author={ZEROPLUS},
howpublished={\url{http://www.zeroplus.com.tw/E-paper/201112/images/201112-USB20ProtocolAnalyzer.pdf}},
note={Accessed:2015-06-13}
}
\end{filecontents}
%==============================================================================
%% Reference Setting 參考文獻環境設定
%% https://www.economics.utoronto.ca/osborne/latex/BIBTEX.HTM
%% http://tex.stackexchange.com/questions/147279/references-at-the-end-of-beamer-slides
\usepackage{cite}
\usepackage{natbib}
%\usepackage{natbib}
%\usepackage{bibtex}
%\usepackage{bibentry}
%\usepackage{chngcntr}
%\bibliographystyle{apalike}
%%%\bibliographystyle{stylename}
%
%\setbeamercolor*{bibliography entry title}{fg=black}
%\setbeamercolor*{bibliography entry author}{fg=black}
%\setbeamercolor*{bibliography entry location}{fg=black}
%\setbeamercolor*{bibliography entry note}{fg=black}
%\setbeamertemplate{bibliography item}{}
%%\setbeamertemplate{bibliography item}{\insertbiblabel}
%\setbeamertemplate{frametitle continuation}[from second]
%
%\counterwithin*{footnote}{page}
%\newcommand\fcite[1]{\footnote{\tiny \bibentry{#1}}\label{\thepage:#1}}
%\newcommand\scite[1]{\textsuperscript{\ref{\thepage:#1}}}
%
%\nobibliography{\jobname}
%==============================================================================
\begin{document}
%==============================================================================
\title[\tiny USB sniffer with the Arduino]{\huge USB sniffer with the Arduino}
\author[\tiny MA330101 廖凱霖]{\\MA330101 廖凱霖}
\date[\tiny 2015/06/17]{2015/06/17}
%==============================================================================
%%% 投影片開始 Frame Start
% Title
\frame{\titlepage}
% Outline
\frame{ \frametitle{Outline}
\tableofcontents}
% Abstract
% 做什麼東西,用什麼方法,得到什麼結果
\section{摘要}
\frame{ \frametitle{摘要}
\begin{itemize}[<+->]
\item 做 USB (Universal Serial Bus) 訊號封包解析儀。
\item 自動解碼,直接得到封包、資料。
\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{analyzer.jpeg}
\caption{USB 解析儀架構圖}
\end{figure}
\end{itemize}
}
%Action
\section{研究動機}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{研究動機 1/2}
\begin{itemize}[<+->]
\item 產學合作:「做 PlayStation 4 格鬥搖桿台」。
\item 實驗室舊型號邏輯分析儀不支援 USB 解析。
\item 封包做解碼及列表整理需花大量時間。
\end{itemize}
}
%
\frame{ \frametitle{研究動機 2/2}
\begin{itemize}
\item 市場調查:
\begin{itemize}
\item 市面上 USB 封包解析儀,價格昂貴 (至少壹萬元起跳)。
\item 整合太多功能,操作複雜。
\end{itemize}
\end{itemize}
% -------------
\captionof{table}{USB 分析儀市場調查表}
\begin{table}[h]
\begin{tabular}{|l|r|}
\hline
\rowcolor[HTML]{000000}
\multicolumn{1}{|c|}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} 產品名稱}} & \multicolumn{1}{c|}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} 市售價格}} \\ \hline
USB Protocol Analyzer & NT\$10,500 \\ \hline
Beagle USB 12 Protocol Analyzer & NT\$14,777 \\ \hline
MQP Electronics Packet-Master USB 12 & NT\$15,698 \\ \hline
ITIC 1480A USB 2.0 Protocol Analyzer & NT\$21,621 \\ \hline
Elisys USB Explorer 200 Basic & NT\$24,856 \\ \hline
LeCroy Conquest Standard & NT\$37,300 \\ \hline
\end{tabular}
\end{table}
\nocite{p1,p2,p3,p4,p5,p6}
%-------------
}
%background
\section{研究背景及知識}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{研究背景及知識 1/5}
\nocite{b1,b2,b5,b3,b4,ref1}
\begin{itemize}[<+->]
\item 無時脈訊號 (Clock Signal)。
\item 使用兩條差動訊號 D+/D- 做資料傳遞。
\item 定義訊號 `1':(D+) - (D-) > 200mV \\
定義訊號 `0':(D+) - (D-) < -200mV
\end{itemize}
}
%background
\frame{ \frametitle{研究背景及知識 2/5}
\begin{itemize}[<+->]
\item 使用 NRZI(Non-Return to Zero Inverted) 編碼:\\
設起始狀態 H,資料 `0' 狀態反向;`1' 狀態保持原來。
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{NRZI.jpeg}
\caption{NRZI 編碼流程圖}
\end{figure}
}
%
\frame{ \frametitle{研究背景及知識 3/5}
\begin{itemize}
\item USB 一個完整的傳輸單位:資訊交易 (Transaction)。
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{transation.jpeg}
\caption{單個 Transation 架構圖}
\end{figure}
}
%
\frame{ \frametitle{研究背景及知識 4/5}
\begin{itemize}
\item 封包組成格式\cite{zeroplus}:
\begin{itemize}
\item 同步序列:取代 Clock 來同步資料。
\item PID:定義封包類型。
\item 封包具體資訊:封包資料內容(依 PID 而有所不同)。
\item CRC:檢查錯誤。
\item EOP:結束封包 (回到 idle ) 狀態。
\end{itemize}
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{packet.jpeg}
\caption{封包 Padket 基本格式}
\end{figure}
}
%
\frame{ \frametitle{研究背景及知識 5/5}
\begin{itemize}
\item 資料型態辨別:PID (Packet ID)。
\end{itemize}
\begin{figure}
\centering
\includegraphics[height=0.72\textheight]{0015.jpg}
\caption{PID Types\cite{ncku}}
\end{figure}
}
%%
\section{文獻回顧及探討}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{文獻回顧及探討}
\begin{itemize}
\item 參考文獻 \cite{ref3,ref4},以 FPGA 實作 UART to USB 訊號轉換器。
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{uarttousb.jpg}
\caption{FIFO 轉換圖框}
\end{figure}
}
%
\section{研究方法及步驟}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{研究方法及步驟 1/4}
\begin{itemize}
\item 使用現有設備量測原廠 PS4 搖桿,建立資料庫。
\end{itemize}
\begin{figure}
\begin{columns}
\column{0.5\textwidth}
\includegraphics[width=\textwidth]{agilent.jpg}
\caption{Agilent 示波器}
\column{0.5\textwidth}
\includegraphics[width=\textwidth]{zp.jpg}
\caption{Zeroplus 邏輯分析儀}
\end{columns}
\end{figure}
}
%
\frame{ \frametitle{研究方法及步驟 2/4}
\begin{itemize}
\item 實作的方法:Arduino UNO + MCP2200 \cite{mcp2200}
\end{itemize}
\begin{figure}
\centering
\only<1>{\includegraphics[width=0.6\textwidth]{arch1.jpeg}}\only<2>{\includegraphics[width=0.6\textwidth]{arch2.jpeg}}\only<3>{\includegraphics[width=0.6\textwidth]{arch3.jpeg}}
\caption{實作方法架構圖}
\end{figure}
}
%
\frame{ \frametitle{研究方法及步驟 3/4}
\begin{itemize}
\item 使用 Arduino UNO 開發板 (ClockSpeed 16MHz)。
\item USB Device (1.5 MBps, Low-speed) 訊號分析不需要高速運算。
\item 價格低。
\end{itemize}
%figure
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{uno.png}
\caption{Arduino UNO 開發板}
\end{figure}
}
%
\frame{ \frametitle{研究方法及步驟 4/4}
\begin{itemize}
\item 使用晶片:MCP2200 (USB to UART)。
\item 讓 USB D+/D- 與 Arduino Tx/Rx 能夠互相溝通。
\end{itemize}
%figure
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{mcp2200_arch.jpg}
\caption{MCP2200 晶片架構}
\end{figure}
}
%
\section{預期研究成果}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{預期研究成果}
\begin{itemize}
\item 對多種主機平台(例如:PS3, PS4, XBOX, PC...等),\\
解析其 USB 週邊裝置之封包訊號。
\item 不要太多設定,一插即分析並整理好封包資料。
\end{itemize}
%figure
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{analyzer_2.jpeg}
\caption{多平台分析示意圖}
\end{figure}
}
%
\section{結論}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{結論}
\begin{itemize}[<+->]
\item USB 為現在及未來之人機介面的主流趨勢。
\item 封包解析變得更簡易更省成本。
\item 仍要依循 USB-IF 制定的規則及標準。
\item 未來進一步的發展方向為`藍芽裝置'的解析。
\end{itemize}
}
%
\section{參考文獻}
\frame{ \frametitle{Outline}\tableofcontents[currentsection]}
\frame{ \frametitle{參考文獻}
\tiny{\bibliographystyle{abbrv} }
\bibliography{\jobname} }
\end{document}