I would like to make a mobile version of my site, which means my content will be duplicate to sub-folder/domain because I want that the mobile site will be shown at the mobile results. Should I use canonical or Google can understand the difference?
Use a subdomain. The search engines will pick up the difference. If the exact same HTML is being served to regular browsers and mobile devices (just via a different stylesheet) then there'll be no need to do this - just serve your mobile stylesheet to mobile users and the search engines will take care of the rest.
Well, normally you're dealing with a small screen size. I've found that a maximum width of 250px works very well for just about every handheld device out there that accepts the @handheld media type. This handy post I wrote on SitePoint should help you out. http://www.sitepoint.com/forums/showthread.php?p=3139174#post3139174 (it contains a list of mobile emulators).