Urban sensing is a foundation of urban computing, collecting data in cities through ubiquitous computing techniques, e.g. using humans as sensors. In this paper, we propose a crowd-based urban sensing framework that maximizes the coverage of collected data in a spatio-temporal space, based on human mobility of participants recruited by a given budget. This framework provides participants with unobstructed tasks that do not break their original commuting plans, while ensuring a sensing program balanced coverage of data that better supports upper-lever applications. The framework consists of three components: 1) an objective function to measure data coverage based on the entropy of data with different spatio-temporal granularities; 2) a graph-based task design algorithm to compute a near-optimal task for each participant, using a dynamic programming strategy; 3) a participant recruitment mechanism to find a portion of participants from candidates for a given budget. We evaluate our framework based on a field study and simulations, finding its advantages beyond baselines.